如何处理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 ...
 
随机推荐
- EditText判断用户输入完成,然后进行操作解决方案
			
private Timer timer = new Timer(); private final long DELAY = 1000; // in ms EditText editTextStop = ...
 - symfony配置
			
1.获取配置的一些变量 在HttpFoundation/Kernel.php 文件里面有函数 getKernelParameters ()可以获取一些配置变量的数组.有需要可以从那里获取. 2.配置s ...
 - php常用的header头
			
<?php /** * php常用的header头设置... */ header('HTTP/1.1 200 OK'); // ok 正常访问 header('HTTP/1.1 404 Not ...
 - Sumsets(POJ 2229 DP)
			
Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 15293 Accepted: 6073 Descrip ...
 - How to use Request js (Node js Module) pools
			
Can someone explain how to use the request.js pool hash? The github notes say this about pools: pool ...
 - Nginx 的 Location 配置指令块
			
最近一段时间在学习 Nginx ,以前一直对 Nginx 的 Location 配置很头大,最近终于弄出点眉目.总结如下:nginx 配置文件,自下到上分为三种层次分明的结构: | http b ...
 - jquery.sortable.js源代码解读
			
/* * HTML5 Sortable jQuery Plugin * http://farhadi.ir/projects/html5sortable * * Copyright 2012, Ali ...
 - Socket也有专门的Unicode版本
			
https://www.chilkatsoft.com/refdoc/wcppCkSocketWRef.html https://www.chilkatsoft.com/refdoc/vcCkSock ...
 - XmlDocument,XDocument相互转换
			
XmlDocument,XDocument相互转换 using System; using System.Xml; using System.Xml.Linq; namespace MyTest { ...
 - scheme I/0 输入输出操作
			
2.1. open-input-file, read-char, and eof-object? The function (open-input-file filename) is availabl ...