smarty的默认标记符是大括号:{},

假如我们页面上有JS且定义了函数或者对象,或者有CSS定义了样式,就会出现大括号,

smary引擎就会把这些大括号当作smarty语法来解释,

很明显,这些CSS样式属性和JS里的语法,不是smarty的语法,

smarty引擎就会报错。

解决办法一、修改smart默认定界符,在php中,修改smarty对象的$left_delimiter和$right_delimiter属性。

很多人喜欢改为<{和}>,也有人改为<!--{和}-->,这看个人喜欢了。

$smarty = new Smarty();

$smarty->left_delimiter = "<{";

$smarty->right_delimiter = "}>";

这样,就能很好地避免了冲突问题,但是缺点也很明显,

通用性和可读性。

你习惯了用<{,他习惯用<!--{,还可能有人习惯用{{;

如果带有<和>,想想在HTML标签里面需要使用的情况

<input type="checkbox" <!--{if $checked}--> checked=""<!--{/if}--> />

大家可以把这句放到DW里看看效果。

个人不是很赞同改定界符来解决这个冲突问题。

作为smarty的开发者,他们肯定懂HTML、CSS、JS的,他们肯定知道这个大括号会有冲突的,

所以,smarty本身肯定会有解决办的,那就是{literal}和{/literal}

将不想被smarty解释的HTML用{literal}和{/literal}包起来。

{literal}
<script type="text/javascript">
function myFun(){
 
}
</script>
{/literal}
 

如果我们需要将php变量传递给js,可以这样

<script type="text/javascript">
var chk = "{$checked}";
{literal}
function myFun(){
 
}
{/literal}
</script>
 

{literal}和{/literal}使用的位置,不需要强求在HTML里的“配对位置”,即可以这样:

<header>
<script type="text/javascript">
var chk = "{$checked}";
{literal}
function myFun(){
 
}
</script>
</header>
<body>
{/literal}
 

如何处理JS,css与smarty标签的冲突的更多相关文章

  1. [Yii2] 快速套模板,加载JS,CSS(HTML标签<base>)

    刚开始学,弄了好久,不知道怎么加载JS.CSS,以及怎么不加载YII2自带的模板!其实真的好简单! 补: 其实是我垃圾,YII2默认访问路径是WEB,所以把style文件放到web下就能加载! 首先把 ...

  2. 如何处理JS与smarty标签的冲突

    smarty的默认标记符是大括号:{}, 假如我们页面上有JS且定义了函数或者对象,或者有CSS定义了样式,就会出现大括号, smary引擎就会把这些大括号当作smarty语法来解释, 很明显,这些C ...

  3. js 动态添加 外部js css 到head标签

    function appendJQCDN() { var head = document.head || document.getElementsByTagName('head')[0]; var s ...

  4. PHP动态压缩js,css

    PHP动态压缩js,css 列表项 标签: PHP 正式发布产品时,我们希望将项目里的js,css合并压缩,以减少http请求.防止轻易查看源代码. 使用 只需要在头部引入一下代码即可: <me ...

  5. 如何解决css和js的{}与smarty定界符冲突的问题

    当输入url地址后网页出现:Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error i ...

  6. JS BOM DOM对象 select联动 计时器 时间 css操作 节点(标签 ) 查找标签 {前端基础之BOM和DOM}

    前端基础之BOM和DOM 前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我 ...

  7. 前端性能优化之js,css调用优化

    规则1:减少HTTP请求     把多个JS请求合并为一个JS请求,把多个CSS请求合并为一个CSS请求.从而减少从客户端向服务器端的请求数.     规则3:添加Expires头     用http ...

  8. JS/CSS缓存杀手——VS插件

    背景 前些天去考科目二,感觉经历了一场不是高考却胜似高考的考试(10年前的5分之差, 还是难以释怀)!    一行八人,就我学的时间最少(4天,8人一辆车),教练都觉得我肯定还得再来一次! 靠着运气和 ...

  9. gulp实现打包js/css/img/html文件,并对js/css/img文件加上版本号

    参考打包教程: http://www.cnblogs.com/tugenhua0707/p/4069769.html http://www.cnblogs.com/tugenhua0707/p/498 ...

随机推荐

  1. Android学习——移植tr069程序到Android平台

    原创作品,转载请注明出处,严禁非法转载.如有错误,请留言! email:40879506@qq.com 声明:本系列涉及的开源程序代码学习和研究,严禁用于商业目的. 如有任何问题,欢迎和我交流.(企鹅 ...

  2. Beautiful Soup常见的解析器

    Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使用 Python默认的解析器,lxml 解析器更加强大,速度更快 ...

  3. javascript中的事件类型

    表单事件 submit reset click change focus blur input window事件 load DomContentLoaded readyStatechange unlo ...

  4. ST-LINK V2 DIY笔记(一)

    最近一段时间调试STM32板子的时候,都是用JLINK+杜邦线,或者拿官方板子当STLINK用,可以用,但是体积比较大,有时候觉得比较麻烦.正好前一阵手头项目少,就想DIY一个STLINK. 图是网上 ...

  5. python-复杂生成式

    1.复杂的列表生成式HTML表格: 注:字符串可以通过%进行格式,用指定的参数化代替%s.字符串的join()方法可以把一list拼接成一个字符串. 把没有几个的分数标记为红色: d = { 'Ada ...

  6. 如何设计一款APP,才能吸引用户眼球

    有APP分析机构研究表明,人们每天耗费在手机和平板上的平均时长为158分钟,其中127分钟是耗费在各类APP中,而仅有31分钟是花费在浏览网页上.随着人们对互联网的依赖性越来越强,移动APP发展迅速已 ...

  7. [LeetCode] String Compression 字符串压缩

    Given an array of characters, compress it in-place. The length after compression must always be smal ...

  8. 剥掉层层外衣后的RPC是什么样子的?

    RPC,全称为Remote Procedure Call(远程过程调用).通俗一点讲就是在本地调用远程服务器上的功能.实现远程调用至少需要满足以下几个条件: 1.网络通信 2.序列化与反序列化 3.反 ...

  9. 2015 多校联赛 ——HDU5319(模拟)

    Painter Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Su ...

  10. bzoj3437小P的牧场 斜率优化dp

    3437: 小P的牧场 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1542  Solved: 849[Submit][Status][Discus ...