2010-10-28 2 views
0

Я пытаюсь получить доступ к результатам div на странице результатов google.co.uk. С помощью firebug видно, что id div является «res», но по какой-то причине getElementById('res') терпит неудачу. чтобы сделать вещи еще более странными - если я обновляю страницу (F5 или ctrl + F5), функция будет успешной.getElementById работает только после обновления страницы

Кроме того, если я смотрю в исходном коде страницы результатов, я не вижу ничего, что похоже на DOM, описанный в firebug.

Почему это происходит, и как я могу обеспечить, чтобы getElementById('res') преуспеть при любом обновлении пользователем.

Спасибо.

EDIT: im, добавив короткий код для упрощения проблемы. после размещения запроса в google.co.uk переадресация страницы и предупреждение «работает», но второе предупреждение не делает. после обновления, оба оповещения поп, хотя второй говорит 0, что неправильно , потому что у div есть дети в соответствии с Firebug DOM.

p.s: я также не упомянуть, что им с помощью greasmonkey

(function() { 
alert('working'); 
var results = document.getElementById('res'); 
alert(results.childNodes.length); 
})(); 
+1

Вы должны показать нам код. Единственный способ, по которому getElementById() завершится с ошибкой, - это если элемент не существует или если предоставленный идентификатор не уникален на странице. – Robusto

+1

Вы уверены, что ваш код разрушен после загрузки google.co.uk? – madeinstefano

+1

Похоже, у вас есть проблема с синхронизацией. Есть ли ошибка, например, «null или нет объекта»? – epascarello

ответ

0
window.addEventListener("DOMContentLoaded", function() { 
    var results = document.getElementById('res'); 
    alert(results.childNodes.length); 
}, false); 
+0

спасибо за ответ. Я попробовал решение, и я получил ошибку «results is null». Я думаю, что добавление этого прослушивателя событий еще хуже, потому что оно запускается, когда структура DOM завершена, но не обязательно после загрузки всей страницы, включая изображения и скрипты – Ari