事情的起因是cms大学小编在制作模板时,模板中插入了一段js代码,在前提构建html页面的时候一切正常,但制作成帝国cms模板后就出错误了,查看js报错信息如下:
折叠XML/HTML 代码
- missing ) after argument list
这就有点奇怪了,怎么好端端的放在帝国里就报错了呢?我们往下排查,首先比对帝国cms内生成的页面,发现js代码中的反斜杠\部分消失了,这是因为帝国cms对反斜杠进行了过滤。
原来的js代码:
折叠JavaScript 代码
- 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表示即可。帝国cms6.6以上版本还可以用转义字符函数egetzy()