今天在帝国二次开发中遇到一个奇葩问题,因为模板中有幻灯切换,需要用到一段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
            };

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。