360搜索 seo主动推送的bug

/ 默认分类 / 0 条评论 / 2708浏览

自动收录添加js代码 请将如下js代码放到待收录页面的</body>

<script>
(function(){
var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?f258ba9671d7f5352f28683893203b0f":"https://jspassport.ssl.qhimg.com/11.0.1.js?f258ba9671d7f5352f28683893203b0f";
document.write('<script src="' + src + '" id="sozz"><\/script>');
})();
</script>

加入从站长平台复制过来的代码会出现以下bug 请输入图片描述

VM345 instantclick.min.js:1 Uncaught TypeError: Cannot read property 'appendChild' of null
    at X (VM345 instantclick.min.js:1)
    at R (VM345 instantclick.min.js:1)
    at Object.W [as done] (VM345 instantclick.min.js:1)
    at k (VM345 instantclick.min.js:1)
    at w (VM345 instantclick.min.js:1)
    at XMLHttpRequest.s (VM345 instantclick.min.js:1)
X @ VM345 instantclick.min.js:1
R @ VM345 instantclick.min.js:1
W @ VM345 instantclick.min.js:1
k @ VM345 instantclick.min.js:1
w @ VM345 instantclick.min.js:1
s @ VM345 instantclick.min.js:1
XMLHttpRequest.send (async)
n @ VM345 instantclick.min.js:1
q @ VM345 instantclick.min.js:1
VM343 headroom.min.js:7 Uncaught TypeError: Cannot read property 'scrollHeight' of null
    at e.getDocumentHeight (VM343 headroom.min.js:7)
    at e.getScrollerHeight (VM343 headroom.min.js:7)
    at e.isOutOfBounds (VM343 headroom.min.js:7)
    at e.update (VM343 headroom.min.js:7)
    at a.update (VM343 headroom.min.js:7)
getDocumentHeight @ VM343 headroom.min.js:7
getScrollerHeight @ VM343 headroom.min.js:7
isOutOfBounds @ VM343 headroom.min.js:7
update @ VM343 headroom.min.js:7
update @ VM343 headroom.min.js:7
requestAnimationFrame (async)
requestTick @ VM343 headroom.min.js:7
handleEvent @ VM343 headroom.min.js:7
attachEvent @ VM343 headroom.min.js:7
setTimeout (async)
init @ VM343 headroom.min.js:7
(anonymous) @ VM356:26
m @ VM345 instantclick.min.js:1
k @ VM345 instantclick.min.js:1
w @ VM345 instantclick.min.js:1
s @ VM345 instantclick.min.js:1
XMLHttpRequest.send (async)
n @ VM345 instantclick.min.js:1
q @ VM345 instantclick.min.js:1
VM345 instantclick.min.js:1 Uncaught TypeError: Cannot read property 'appendChild' of null
    at X (VM345 instantclick.min.js:1)
    at T (VM345 instantclick.min.js:1)

分析

这个逻辑我是服气的:document.write('<script src="' + src + '" id="sozz"><\/script>'); 直接将document重置成一段js。认真的么 ?

用插入的方式加入,发现不会触发新加入的js,就是不会有http://js.passport.qihucdn.com/11.0.1.js内引入的新一段js:<script charset="utf-8" src="http://s5.qhres.com/static/ab77b6ea7f3fbf79.js"></script> 故无效。

只能妥协 用它这个重写的方式 所以只能放在最前面了。

解决方案

只能将其代码 放在最开始!!!