360自动推送js报错的解决方案
当我们按360站长要求加入了自动推送的js代码后,chrome浏览器会报错,因为360自动收录默认的 js 代码使用document.write,为了安全,在动态js中使用document.write是不被允许的。

如何解决问题?
解决方法就是将360自动推送代码直接添加到源码中,而不是通过360的js动态添加,代码如下:
<script> (function (e) { function t(e) { var t = location.href, n = t.split("").reverse(), r = e.split(""), i = []; for (var s = 0, o = 16; s < o; s++)i.push(r[s] + (n[s] || "")); return i.join("") } var n = /([http|https]:\/\/[a-zA-Z0-9_.]+.so.com)/gi, r = e.location.href; if (r && !n.test(r) && window.navigator.appName) { var i = "//s.360.cn/so/zz.gif", o = 'token', u = t(o), a = new Image; r && (i += "?url=" + encodeURIComponent(r)), o && (i += "&sid=" + o), u && (i += "&token=" + u), o && (a.src = i) } })(window); </script>
注意,代码中的token是你网站自动推送的密钥,每个网站是不同的,如下红框内部分:

代码的添加位置依然保持为360文档中标识的位置,也就是<head></head>间。
为什么这样能解决问题?
以上的解决方案并非自创的,我们只是把360的自动推送代码从动态js直接搬到了源码中,请求自动推送的接口:https://jspassport.ssl.qhimg.com/11.0.1.js?token,可以看到其中的js地址为:https://s.ssl.qhres.com/ssl/ab77b6ea7f3fbf79.js,然后请求这个js地址就会得到我们上面解决方案中的代码。