帝国cms在模板中含有反斜杠\时被自动过滤的问题

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

折叠XML/HTML 代码
  1. missing ) after argument list  

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

原来的js代码:

折叠JavaScript 代码
  1. function add_to_contrast(checkboxId,uid,name,thumb){  
  2.     $('.teach_Xuanf').show();  
  3.     if($('#'+checkboxId).attr("checked")=='checked'){  
  4.         if($('.t_info').size()>1){  
  5.             alert('每次只能选择两位教师进行对比!');  
  6.             $('#'+checkboxId).removeAttr("checked");  
  7.         }else{  
  8.             $('#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>');  
  9.         }  
  10.     }else{  
  11.         $('#'+uid).remove();  
  12.     }  
  13. }  

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

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

 

 

Tags: 模板   过滤
cms大学,为帝国cms用户提供动力
Copyright © 2016 CmsDX.com All Rights Reserved.