如何在文件里加入JS代码,如果按一般平常添加方法,会出错,解决的方法:
把script套在{literal}{/literal}之间试试看,例如:
{literal}
{/literal}
--------------------------------------------------------------------------------------------------
看到好多ecshop的模板文件中 都有{literal}{/literal} 标签的影子,该标签一般都是把js
包含起来,一直不知道是什么作用,或者这样写有什么含义。找了半天才现在,他的真真作用,还是学习不到位啊。
literal
标签是在smarty中的存在的,这就能理解为什么会出现在ecshop中了。smarty会把所有的{}都当成是自己的程序,我们在js中如果想定义一个函数的话就会用到{}
。smarty一编译就把js中定义函数的{}当做自己的东西来编译。这样就可能出现问题了。为了解决这个问题,于是诞生了{literal}标签。
也可以这样理解:iteral 标签区域内的数据将被当作文本处理,此时模板将忽略其内部的所有字符信息.
该特性用于显示有可能包含大括号等字符信息的 javascript 脚本. 当这些信息处于 {literal}{/literal}
标签中时,模板引擎将不分析它们,而直接显示.(转)
--------------------------------------------------------------------------------------------------
{literal}
{literal}可以让一个模板区域的字符原样输出。这经常用于保护页面上的Javascript或css样式表,避免因为Smarty的定界符{语法}而错被解析。在{literal}{/literal}内的任何标签都不会被解析,原样输出。所以如果你有需要放到{literal}内的标签,首先可以考虑是否用{ldelim}{rdelim}来代替定界符在页面上的显示(不用{literal})。
Note
因为Smarty会忽略那些带空格的定界符,所以通常不需要使用{literal}{/literal},。请确定你的Javascript或者CSS样式表的大括号周围是有空格的。这是Smarty
3的新特性。
Example 7.59. {literal}
标签