如何处理JS与smarty标签的冲突
2015-12-14 19:33
531 查看
smarty的默认标记符是大括号:{},
假如我们页面上有JS且定义了函数或者对象,或者有CSS定义了样式,就会出现大括号,
smary引擎就会把这些大括号当作smarty语法来解释,
很明显,这些CSS样式属性和JS里的语法,不是smarty的语法,
smarty引擎就会报错。
解决办法一、修改smart默认定界符,在php中,修改smarty对象的$left_delimiter和$right_delimiter属性。
很多人喜欢改为<{和}>,也有人改为<!--{和}-->,这看个人喜欢了。
$smarty=newSmarty();
$smarty->left_delimiter="<{";
$smarty->right_delimiter="}>";
这样,就能很好地避免了冲突问题,但是缺点也很明显,
通用性和可读性。
你习惯了用<{,他习惯用<!--{,还可能有人习惯用{{;
如果带有<和>,想想在HTML标签里面需要使用的情况
<inputtype="checkbox"<!--{if$checked}-->checked=""<!--{/if}-->/>
大家可以把这句放到DW里看看效果。
个人不是很赞同改定界符来解决这个冲突问题。
作为smarty的开发者,他们肯定懂HTML、CSS、JS的,他们肯定知道这个大括号会有冲突的,
所以,smarty本身肯定会有解决办的,那就是{literal}和{/literal}
将不想被smarty解释的HTML用{literal}和{/literal}包起来。
如果我们需要将php变量传递给js,可以这样
{literal}和{/literal}使用的位置,不需要强求在HTML里的“配对位置”,即可以这样:
来源:<http://www.5dphp.com/art_56.html>
来自为知笔记(Wiz)
假如我们页面上有JS且定义了函数或者对象,或者有CSS定义了样式,就会出现大括号,
smary引擎就会把这些大括号当作smarty语法来解释,
很明显,这些CSS样式属性和JS里的语法,不是smarty的语法,
smarty引擎就会报错。
解决办法一、修改smart默认定界符,在php中,修改smarty对象的$left_delimiter和$right_delimiter属性。
很多人喜欢改为<{和}>,也有人改为<!--{和}-->,这看个人喜欢了。
$smarty=newSmarty();
$smarty->left_delimiter="<{";
$smarty->right_delimiter="}>";
这样,就能很好地避免了冲突问题,但是缺点也很明显,
通用性和可读性。
你习惯了用<{,他习惯用<!--{,还可能有人习惯用{{;
如果带有<和>,想想在HTML标签里面需要使用的情况
<inputtype="checkbox"<!--{if$checked}-->checked=""<!--{/if}-->/>
大家可以把这句放到DW里看看效果。
个人不是很赞同改定界符来解决这个冲突问题。
作为smarty的开发者,他们肯定懂HTML、CSS、JS的,他们肯定知道这个大括号会有冲突的,
所以,smarty本身肯定会有解决办的,那就是{literal}和{/literal}
将不想被smarty解释的HTML用{literal}和{/literal}包起来。
{literal}
<scripttype="text/javascript">
functionmyFun(){
}
</script>
{/literal}
如果我们需要将php变量传递给js,可以这样
<scripttype="text/javascript">
varchk="{$checked}";
{literal}
functionmyFun(){
}
{/literal}
</script>
{literal}和{/literal}使用的位置,不需要强求在HTML里的“配对位置”,即可以这样:
<header>
<scripttype="text/javascript">
varchk="{$checked}";
{literal}
functionmyFun(){
}
</script>
</header>
<body>
{/literal}
来源:<
相关文章推荐
- 原生态ajax和 ajax的两个框架的 JS实现
- jsp中显示本地图片
- 基于JavaScript 声明全局变量的三种方式详解
- JavaScript计时事件
- js 中{},[]中括号,大括号使用详解
- JS 第二记
- js 分页
- Gson解析json的数据
- JS之理解组合继承模式和寄生式组合继承的区别
- JS产生随机数的几个用法!
- js未定义判断
- 【层级结构】Ext.js5应用层级结构介绍
- js运动动画的八个知识点
- jstl 使用mgt标签将数字转换时间
- js数组引用传值问题
- JavaScript代码放在HTML代码不同位置的差别
- javascript 正则表达式过滤sql关键字
- js-----document//寻找节点
- js中存在值传递和地址传递(----------只是称呼不一样----------)
- JS-String方法