如何处理JS与smarty标签的冲突
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与smarty标签的冲突的更多相关文章
- 如何处理JS,css与smarty标签的冲突
smarty的默认标记符是大括号:{}, 假如我们页面上有JS且定义了函数或者对象,或者有CSS定义了样式,就会出现大括号, smary引擎就会把这些大括号当作smarty语法来解释, 很明显,这些C ...
- Asp.net 后台添加CSS、JS、Meta标签
Asp.net 后台添加CSS.JS.Meta标签的写法,我这里写成函数方便以后使用.如果函数放在页面类中, Page参数也可以不要. 首先导入命名空间 using System.Web.UI.Htm ...
- 通过js获得html标签的值
js获取html元素的值并赋值 1).input文本框 <input type="text" value="时间" placeholder="姓 ...
- 使用JS对HTML标签进行增删改查
以下为通过JS对li标签进行简单的增删改查: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...
- js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题
js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...
- 网站开发进阶(十八)js获取html标签中的值
js获取html标签中的值 项目开发过程中,由于需求所迫,需要获取html标签元素中的内容,下面做一简单总结.以下所讲的示例适用于其它标签元素. 主要包括2中方法获取元素内容: 方法一:.innerT ...
- js基础--浏览器标签页隐藏或显示状态 visibility详解
欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 在工作中我们可能会遇到这样的需求,当浏览器切换到别的标签页或着最小化时,我们需要暂停页面上正在播放的视频或者音乐,这个需求 ...
- JQ和Js获取span标签的内容
JQ和Js获取span标签的内容 html: 1 <span id="content">‘我是span标签的内容’</span> javascript获取: ...
- js阻止a标签默认事件的几种方法
方法/步骤 疑问 打开编辑器,新建html并加入a标签,如图所示,小编想点击a标签时执行pop函数同时禁止a标签的默认的href跳转,该如何阻止呢? 方法一 要阻止a标签跳转,可以改变href ...
随机推荐
- 何时可以开启透明数据加密(TDE)?
TDE可以为我们的数据库提供加密保护,但是,不是任何情况下都可以随意开启TDE的,同时开启TDE后,我们的数据库维护管理工作也需要进行一些调整. 下面我们就先看看开启TDE需要的条件吧! 无法正常开启 ...
- activiti笔记一:流程图xml文件
一. 流程图有两个基本要素组成:点和线 点:开始节点.结束节点.各种网关.各种事件 线:连接两点之间的sequenceFlow 二. 一般包含三个步骤:部署.启动.完成 三. 启动的时候,可以设置流程 ...
- Mysql 建表时,日期时间类型选择
mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 D ...
- python计算机视觉2:图像边缘检测
我是一名初学者,如果你发现文中有错误,请留言告诉我,谢谢 如果需要检测到图像里面的边缘,首先我们需要知道边缘处具有什么特征. 对于一幅灰度图像来说,边缘两边的灰度值肯定不相同,这样我们才能分辨出哪里是 ...
- 从几个sample来学习JAVA堆、方法区、JAVA栈和本地方法栈
最近在看<深入理解Java虚拟机>,书中给了几个例子,比较好的说明了几种OOM(OutOfMemory)产生的过程,大部分的程序员在写程序时不会太关注Java运行时数据区域的结构: 感觉有 ...
- mysql中的意向锁IS,IX
知识储备: 1.官方文档上说mysql是支持非锁定读的:这个功能是这样实现的,如果事务a 要对行的数据进行更新的话,那么事务a要得到行的x锁,并把这一行 之前的样子记录在undo log里面,这样一 ...
- css显示省略号
white-space:nowrap;overflow:hidden;text-overflow:ellipsis; <!-- 就这三句,,,嘿嘿....->
- Android APK安装包瘦身[转]
很显然,APK安装包越小越好.下面从代码,资源文件,使用策略几个方面简要介绍下: 代码 保持良好的编程习惯,不要重复或者不用的代码,谨慎添加libs,移除使用不到的libs. 使用proguard混淆 ...
- Cuckoo hash算法分析
一 基本思想: cuckoo hash是一种解决hash冲突的方法,其目的是使用简单的hash 函数来提高hash table的利用率,同时保证O(1)的查询时间 基本思想是使用2个hash函数来处理 ...
- Wine --- Linux上运行 Windows 应用
https://www.winehq.org/ Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linu ...