谷歌Chrome没有抓到javascript异常

时间:2011-05-15 10:45:29

标签: javascript exception google-chrome

在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'

问题:问题是什么?我该如何解决这个问题?

更新

当我在打开的标签之间切换时,会发生此错误,但也会随机发生。

1 个答案:

答案 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); })();