Показать сообщение отдельно
  #10 (permalink)  
Старый 07.01.2014, 23:20
Интересующийся
Отправить личное сообщение для totalavitaminoz Посмотреть профиль Найти все сообщения от totalavitaminoz
 
Регистрация: 06.01.2014
Сообщений: 23

Код работающий. Как я уже писал выше если запустить
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

Последний раз редактировалось totalavitaminoz, 07.01.2014 в 23:26.
Ответить с цитированием