漂泊的云,停留的心!
人的头脑太复杂,时间过得久……

帝国CMS(EmpireCMS)V7.5在模板中代码含有反斜杠\时被自动过滤的解决方法

《帝国网站管理系统》英文译为”Empire CMS”,简称”Ecms”,它是基于B/S结构,且功能强大而帝国CMS-logo易用的网站管理系统。本系统由帝国开发工作组独立开发,是一个经过完善设计的适用于Linux/windows引/Unix等环境下高效的网站解决方案。从帝国新闻系统1.0版至帝国网站管理系统,它的功能进行了数次飞跃性的革新,使得网站的架设与管理变得极其轻松!

事情的起因是PiaoYun.CC小编在制作模板时,模板中插入了一段js代码,在前提构建html页面的时候一切正常,但制作成帝国CMS(EmpireCMS)模板后就出错误了,查看js报错信息如下:

missing ) after argument list  

这就有点奇怪了,怎么好端端的放在帝国CMS(EmpireCMS)里就报错了呢?我们往下排查,首先比对帝国CMS(EmpireCMS)内生成的页面,发现js代码中的反斜杠\部分消失了,这是因为帝国CMS(EmpireCMS)对反斜杠进行了过滤。

原来的js代码:

function add_to_contrast(checkboxId,uid,name,thumb){  
    ('.teach_Xuanf').show();     if(('#'+checkboxId).attr("checked")=='checked'){  
        if(('.t_info').size()>1){             alert('每次只能选择两位教师进行对比!');('#'+checkboxId).removeAttr("checked");  
        }else{  
            ('#contrast').prepend('<li class="t_info" id="'+uid+'"><img src="'+thumb+'" width="90" height="88"><br /><span>'+name+'</span><a href="javascript:void(0)" onclick="remove_from_contrast(\''+uid+'\')"></a><input type=hidden id="tuid" name="tuid[]" value="'+uid+'"></li>');         }     }else{('#'+uid).remove();  
    }  

}  

解决方法也很简单,将反斜杠改为四个,也就是\\\\

单个\四个\表示即可,如:\r\\\\r表示即可。帝国CMS(EmpireCMS)6.6以上版本还可以用转义字符函数egetzy()

来源参考:
帝国cms在模板中含有反斜杠\时被自动过滤的问题 – CMS大学

赞(0)
未经允许不得转载:飘云 » 帝国CMS(EmpireCMS)V7.5在模板中代码含有反斜杠\时被自动过滤的解决方法
分享到: 更多 (0)