在Firefox 4.0或Internet Explorer 8 +中不会发生此错误。
我创建一个新的空标签,然后打开控制台(Ctrl + Shift + I然后选择Esc)并粘贴以下代码:
var cnt = 0;
(function() {document.body.innerHTML = cnt;window.setTimeout(arguments.callee,100);})();
(function(){cnt++;window.setTimeout(arguments.callee,0);})();
此时有时会出现错误,但并非总是如此。
在此之后我粘贴更多:
(function(){cnt++;window.setTimeout(arguments.callee,0);})();
大约30秒后,我得到以下任何一个错误:
未捕获的TypeError:无法读取null的属性'offsetHeight' 未捕获的TypeError:无法读取null
的属性'classList'
问题:问题是什么?我该如何解决这个问题?
更新
当我在打开的标签之间切换时,会发生此错误,但也会随机发生。
答案 0 :(得分:1)
这是因为chrome://newtab
期望某些元素存在(出于JavaScript目的),但是您要使用document.body.innerHTML
将其删除。您可以注入一个元素用于输出,这样的东西应该可以工作:
var cnt = 0;
document.body.innerHTML = '<div id="abcd">...</div>' + document.body.innerHTML;
(function(){
document.getElementById('abcd').innerHTML=cnt;
window.setTimeout(arguments.callee,100);
})();
(function(){ cnt++;window.setTimeout(arguments.callee,0); })();