比如
$('#moveImage').bind('dblclick',function(){
window.location.href='{APP_PATH}index.php?m=special&c=index&a=special&siteid={$siteid}';
})
中的要写大括号标签,这么写肯定不行,要被解析错误的
但是要转义,试了一下也不行
如
$('#moveImage').bind('dblclick',function(){
window.location.href='\{APP_PATH\}index.php?m=special&c=index&a=special&siteid=\{$siteid\}';
})
那么问题来了,难道js中真的没有办法写入phpcms的标签符号吗,我估计这么多年了,我是第一个关注这种问题的,因为全论坛没有这方面的帖子.
应该是你写的不符合规范,否则就不可能只有你会遇到问题
1、APP_PATH 是什么?
如果是常量,那么你这样写在串中是错误的
如果不是常量,则一定有替换字符串为值的地方。那么该不该有大括号括起就是个问题了。即替换时是否会将大括号一起替换掉
这要看看做这事的代码了
2、在 js 中,除非有特殊需要是不必书写而外的路径的,如果写了则必须是绝对路径,否则就会被解释为子目录了
而你的 APP_PATH 显然是项目目录
3、你可以在浏览器中查看网页源文件,看看这部分变成什么了
不好意思刚睡醒脑子有点不清醒不太理解你的意思。
PHPCMS的模板引擎比较简单高效,也就是说只要花括号开始闭合都在同一行内且中间没有空格(loop、for、if、pc、php以及调用函数和允许出现空格 ),那么都会被模板引擎匹配到(常量、变量、自增自减等)。
详细的可以看模板引擎phpcms/libs/classes/template_cache.class.php中template_parse()方法。
然后看你最后一句,我暂且理解为在模板文件中script里调用模板标签,可以准确的告诉你是可以的,因为在模板引擎中,并没有对标签调用位置进行判断。
<script type="text/javascript">alert({APP_PATH});</script>
<script type="text/javascript">alert("{APP_PATH}");</script>
<script type="text/javascript">alert("{APP_PATH}");</script>
<script type="text/javascript">alert("{APP_PATH}");</script>
var path='{APP_PATH}';
$('#moveImage').bind('dblclick',function(){
window.location.href=path+'index.php?m=special&c=index&a=special&siteid={$siteid}';
})
呵呵
随便看看,偶不说话
<script type="text/javascript">alert("{APP_PATH}");</script>