// 总结:
// 1/ 在smarty 模板文件中,使用从php中assign过来的smarty变量,一定需要使用双引号或单引号来括住smarty变量,如:var title="<!--{$title}-->";
// 2/ 如果不使用引号括住,在smarty变量值为字符串的情况下,那么该字符串在javascript中会被作为javascript变量来解释,所以就会产生错误。
// 3/ 变量值是数字,那么则不会产生错误
// tpl 文件
<script>
if(navigator.userAgent.toLowerCase().match(/app_.*_hinabian/)){
<!--{if isset($APP_PAGE_TITLE)}-->
document.title = <!--{$APP_PAGE_TITLE|default:'所有移民项目'}-->; // 这里没有使用引号(单引号或双引号)括住smarty变量值,如果该smarty变量是字符串,那么在 javascript中就会被当作是一个变量来处理,所以就会出现 uncaught referenceError<!--{else}-->
document.title = document.title.replace(' · 海那边', '').replace('·海那边', '').replace('_海那边', '');
<!--{/if}-->
}
</script> // php + smarty 处理后返回给浏览器的数据 <script>
if(navigator.userAgent.toLowerCase().match(/app_.*_hinabian/)){
document.title = 普通投资移民项目;
} </script>

错误提示截图:

[smarty] 在smarty模板中使用smarty变量初始化 javascript 变量的问题的更多相关文章

  1. java变量和javascript变量之间的传递

    java代码是运行在服务器上的,返回的值只是静态的存在于页面,而javascript是脚本语言,是运行在客户端的!它们是两种完全不同的语言,变量不能直接进行交换,但是通过一定的方式,变量可以传递. j ...

  2. smarty直接在模板中格式化时间的方法

    smarty提供了一个获取时间戳的方法: <%$smarty.now%> 使用该方法获取到当时的时间戳之后,使用格式化修饰符data-format进行修饰: <%$smarty.no ...

  3. THinkPHP在模板中的volist循环使用外部变量注意事项

    循环中.自己定义的id=volist就可以使用$volist.id 或者$volist['id'] 而外面定义的变量就不能使用$vo.id 必须使用$vo['id']<volist name=& ...

  4. mvc4中 @Url.Action 如何读取javascript变量的值

    js中  function Search()  {     var businessDate = GetSelectedBusinessDate("#businessYear",  ...

  5. 在thinkphp框架模板中引用session

    我已经将模板引擎配置为smarty,在模板中使用常量是写为 {$smarty.const.ADMIN_IMG} 到使用到session的值时这样写 {$smarty.session.mg_name}

  6. JavaScript 变量

    一,JavaScript 变量(存储信息的容器) 与代数一样,JavaScript 变量可用于存放值(比如 x=2)和表达式(比如 z=x+y). 变量可以使用短名称(比如 x 和 y),也可以使用描 ...

  7. JavaScript变量作用域(Variable Scope)和闭包(closure)的基础知识

    在这篇文章中,我会试图讲解JavaScript变量的作用域和声明提升,以及许多隐隐藏的陷阱.为了确保我们不会碰到不可预见的问题,我们必须真正理解这些概念. 基本定义 作用范围是个“木桶”,里面装着变量 ...

  8. C++关于变量初始化的琐记

    #include <iostream> using namespace std; class Base{ virtual void func1() { cout<<" ...

  9. SMARTY模板中如何使用get,post,request,cookies,session,server变量

    {$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间戳.直接访问PHP中 ...

随机推荐

  1. 疯狂JAVA——第四章 流程控制与数组

    4.5 数组类型 数组也是一种类型.它本身是引用类型.例如int是一种基本类型,int[]就是引用类型. 两种定义数组的方式: 1.type[] arrayName; 2.type arrayName ...

  2. linux下set命令的参数及用法

    linux  set 命令 功能说明:设置shell. 语 法:set [+-abCdefhHklmnpPtuvx] 补充说明:用set 命令可以设置各种shell选项或者列 出shell变量.单个选 ...

  3. java script 模拟鼠标事件

    try { var selector1 = "._3-8y:first-child"; var evt = document.createEvent("MouseEven ...

  4. The maximum column size is 767 bytes (Mysql)

     ERROR app.wsutils 419 INCRON: Error: ('HY000', '[HY000] [MySQL][ODBC 5.2(w) Driver][mysqld-5.7.7-rc ...

  5. linux安装本地blast

    1)wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.8.0alpha/ncbi-blast-2.8.0-alpha+-x64-li ...

  6. 使用JS伪造Post请求

    [使用JS伪造Post请求] 提到伪造Post请求,首先想到的是构造HTTP包.但实际上有一种更简单的方法,构造HTML FORM表单,使用js进行提交.如下:

  7. ALTER数据库

    alter table dbo.Sheet1$ alter column UserId int null

  8. Python bool() 函数

    Python bool() 函数  Python 内置函数 描述 bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False. bool 是 int 的子类. 语法 以下是 boo ...

  9. python学习——sys.argv

    sys.argv[]:用于获取命令行参数,sys.argv[0]即所运行的代码自身的文件路径,因此真正的其他参数是从1开始 sys.argv[1]:表示第一个参数 sys.argv[1][2:]:表示 ...

  10. django的数据库操作回顾

    补充一个filter中大于小于的用法 models.course_info.objects.filter(id__gte=30).delete() _exact 精确等于 like 'aaa' __i ...