帝国cms模板中系统会自动替换掉反斜杠的解决办法
今天在帝国二次开发中遇到一个奇葩问题,因为模板中有幻灯切换,需要用到一段JS,代码如下
var u = navigator.userAgent,
isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1,
isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
urls = {
'android':andriod,
'ios': 'itms-services://?action=download-manifest&url='+ios,
'other':andriod
};
结果保存模板后,查看前台代码,上述中的代码变成了如下:
var u = navigator.userAgent,
isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1,
isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/),
urls = {
'android':andriod,
'ios': 'itms-services://?action=download-manifest&url='+ios,
'other':andriod
};
一对比可以发现在
isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
这个反斜杠 \ 给过滤掉了。这就导致了幻灯图在PC端查看是没任何问题的,手机端查看的时候就不切换并且失去样式。
解决办法:
经过查阅相关资料,发现只需要将 \ 写成四个 \\\\ 就可。
修改过的代码:
var u = navigator.userAgent,
isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1,
isiOS = !!u.match(/\\\\(i[^;]+;( U;)? CPU.+Mac OS X/),
urls = {
'android':andriod,
'ios': 'itms-services://?action=download-manifest&url='+ios,
'other':andriod
};
#免责声明#
ZHANN.CN帝国之家工作室内所有作品,均为ZHANN手写代码。部分样式或模板代码移植或仿造自互联网(如有侵权,出示著作权证书联系我删除),所有代码不能用于非法站点(色情,暴力,政治类站点)。ZHANN只提供源代码服务,不提供任何建站服务。不承担任何建站后的法律问题!ZHANN所得费用均为制作模板劳动报酬。使用开源免费的帝国CMS作为核心,请保留帝国CMS的版权。如商用请购买帝国商业版,ZHANN只做帝国CMS模板服务,不做任何建站、不制作采集任何网站内容、不出售任何非开源有版权源代码更不卖任何域名和空间服务器,我出卖的只是我的技术劳动力!如在本站发生交易任何资源或者下载任何资源,则代表默认同意以上文字内容。感谢小伙本的支持,做一个知法守法的好公民!