2010-10-28 4 views
0

J'essaie d'accéder aux résultats div dans la page de résultats de google.co.uk. En utilisant firebug on peut voir que l'id de la div est "res" mais pour une raison quelconque getElementById('res') échoue. pour rendre les choses encore plus bizarres - si je rafraîchis la page (F5 ou ctrl + F5), la fonction réussit.getElementById ne fonctionne qu'après l'actualisation de la page

Aussi, si je regarde dans le code source de la page de résultats, je ne vois rien qui ressemble au DOM décrit dans firebug.

Pourquoi cela se produit-il et comment puis-je m'assurer que getElementById('res') réussira avec n'importe quel rafraîchissement par l'utilisateur.

Merci.

EDIT: im ajoutant un code court pour simplifier le problème. après avoir placé une requête dans google.co.uk la page redirige et l'alerte «fonctionne» apparaît mais la deuxième alerte n'est pas. après l'actualisation, les deux alertes pop mais la seconde indique 0 ce qui n'est pas correct car la div a des enfants selon le DOM firebug.

p.s: i a également omis de mentionner que im en utilisant Greasemonkey

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

Vous devez nous montrer un peu de code. La seule façon dont getElementById() échouera est si l'élément n'existe pas ou si l'identifiant fourni n'est pas unique sur la page. – Robusto

+1

Etes-vous sûr que votre code est en train de se gâcher après le chargement de google.co.uk? – madeinstefano

+1

On dirait que vous avez un problème de synchronisation. Y at-il une erreur comme "null ou pas un objet"? – epascarello

Répondre

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

merci de répondre. J'ai essayé votre solution et j'ai l'erreur "results is null". Je pense que l'ajout de cet écouteur d'événement est encore pire car il est déclenché lorsque la structure DOM est terminée mais pas nécessairement après que toute la page est chargée, y compris les images et les scripts – Ari

Questions connexes