TIP
在做网站seo时,使用了360的自动收录代码,打开控制台时发现有错误提示。
WARNING
最终我没用自动收录了,还是站长平台直接传sitemap方便点!
utils.js:19 A parser-blocking, cross site (i.e. different eTLD+1) script, https://jspassport.ssl.qhimg.com/11.0.1.js?d182b3f28525f2db83acfaaf6e696dba, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message. See https://www.chromestatus.com/feature/5718547946799104 for more details
大概意思就是,页面渲染完成后使用了document.write()
(chrome53以上版本会报错。)
那好吧我就不用document.write()
。
- 360提供的代码
js
(function(){
var src = "https://jspassport.ssl.qhimg.com/11.0.1.js?abcdefg1234567";
document.write('<script src="' + src + '" id="sozz"><\/script>');
})();
- 第一次修改
js
(function(){
var bp = document.createElement('script');
bp.id = 'sozz';
bp.src = 'https://jspassport.ssl.qhimg.com/11.0.1.js?abcdefg1234567';
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
改好之后,发现还是报错。查看这个js文件发现,文件内容为
js
document.write('<script charset="utf-8" src="https://s.ssl.qhres.com/ssl/ab77b6ea7f3fbf79.js"></script>')
这里也有个document.write
,那好再来看这个js文件内容
js
(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",
s=document.getElementById("sozz"), // 我们添加的script
o=s.src.split("?")[1], // 360提供的src的?后的那一串如:abcdefg1234567
u=t(o),
a=new Image;
r&&(i+="?url="+encodeURIComponent(r)),o&&(i+="&sid="+o),u&&(i+="&token="+u),o&&(a.src=i)
}
})(window);
- 第二次修改,直接使用最终这个js文件
js
(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='abcdefg1234567', // 360提供的src的?后的那一串如:abcdefg1234567
u=t(o),a=new Image;
r&&(i+="?url="+encodeURIComponent(r)),o&&(i+="&sid="+o),u&&(i+="&token="+u),o&&(a.src=i)
}
})(window);
好了,解决!