Google Chrome необнаруженное исключение JavaScript - PullRequest
1 голос
/ 15 мая 2011

Эта ошибка не возникает в 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 секунд я получаю любую из этих ошибок:

Uncaught TypeError: Невозможно прочитать свойство 'offsetHeight' с нулевым значением
Uncaught TypeError: Невозможно прочитать свойство 'classList' с нулевым значением

Вопрос: что такоепроблема?Как я могу решить эту проблему?

ОБНОВЛЕНИЕ:

Эта ошибка возникает, когда я переключаюсь между открытыми вкладками, но также случайно.

1 Ответ

1 голос
/ 15 мая 2011

Это потому, что 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); })();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...