Smarty中{literal}的使用详解(ecshop)

如何在文件里加入JS代码,如果按一般平常添加方法,会出错,解决的方法:
把script套在{literal}{/literal}之间试试看,例如:
{literal}

{/literal}

--------------------------------------------------------------------------------------------------

看到好多ecshop的模板文件中 都有{literal}{/literal} 标签的影子,该标签一般都是把js 包含起来,一直不知道是什么作用,或者这样写有什么含义。找了半天才现在,他的真真作用,还是学习不到位啊。

literal 标签是在smarty中的存在的,这就能理解为什么会出现在ecshop中了。smarty会把所有的{}都当成是自己的程序,我们在js中如果想定义一个函数的话就会用到{}  。smarty一编译就把js中定义函数的{}当做自己的东西来编译。这样就可能出现问题了。为了解决这个问题,于是诞生了{literal}标签。

也可以这样理解:iteral 标签区域内的数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的 javascript 脚本. 当这些信息处于 {literal}{/literal} 标签中时,模板引擎将不分析它们,而直接显示

转: http://blog.sina.com.cn/s/blog_13881dd5d0102vsj0.html

原文地址:https://www.cnblogs.com/fps2tao/p/9718539.html