Код работающий. Как я уже писал выше если запустить
var name = document.getElementById('name').getElementsByTagName('*')[1].innerHTML;
alert(name);
вручную в консоле, то всё проходит гладко.
но если обернуть его
window.onload = function(){
setTimeout(function(){location.reload()}, 10000);
var name = document.getElementById('name').getElementsByTagName('*')[1].innerHTML;
alert(name);
}
или хотя бы даже так:
setInterval("location.reload()", 5000);
var name = document.getElementById('name').getElementsByTagName('*')[1].innerHTML;
alert(name);
}
и подключать как userjs, то он перестаёт выполняться.
Причём, в хроме работает только второй вариант автообновления, а в Опере оба.
На счёт перестаёт выполняться. Выполняется в одном случае из пары десятков.
И если без window.onload я могу понять почему он выполняется не всегда, то в примере с этой функцией я теряюсь в чём может быть причина.
Консоль ошибок в хроме при использовании второго варианта (без window.onload) выдаёт вполне предсказуемое:
Цитата:
|
ERROR: Execution of script 'test yandex' failed! Cannot call method 'getElementsByTagName' of null
|
Более того, пока я писал, то мне хром выдал нужный алерт раза 3(без использования window.onload), чего не было до этого. Потом снова замолк.
После этого я снова обернул код в window.onload
window.onload = function(){
setTimeout(function(){location.reload()}, 10000);
var name = document.getElementById('name').getElementsByTagName('*')[1].innerHTML;
alert(name);
}
и автообновление пропало.
То, что код подключен убедился добавив алерт после обёртки. При ручном обвнолении страницы, он выводится.
В консоли НИКАКИХ ошибок не появляется.
Я запутался.
upd:
консоль в опере, в которой нормально работает автообновление с window.onload выдаёт это
Цитата:
|
Error thrown at line 11, column 3 in <anonymous function: window.onload>() in test.user.js:
var name = document.getElementById('name').getElementsByTagNa me('*')[1].innerHTML;
content_script.js:64
ext_content: opera.extension.postMessage get_scripts
Uncaught exception: TypeError: Cannot convert 'document.getElementById('name')' to object
|