2010-11-08 5 views
1

Je vous ai écrit un script Greasemonkey qui fera GM_xmlhttpRequest aux 2 pages suivantes de la page de résultats Google .. à savoir si ma page actuelle est 1 alors mon script ne GM_xmlhttpRequest à la page n ° 2 et 3 ..Modifier Google Résultats de la recherche page

maintenant mon script va extraire tous les urls de ces 3 pages et seront les réordonner

Pour que je l'ai fait

unsafeWindow.addEventListener('load',Reorder,true); 

function Reorder() 
{ 
alert("onload fired") 
.......... 
.......... 
// some code overhere to collect all the urls into an array 
// and to reorder the urls in the array 

// maintenant j'injecte ces URL dans mes pages de référence, c'est-à-dire je garde une référence aux noeuds où je suis supposé ajouter ces URL comme childNodes .. et avec cela je modifie les liens à la page no. 2 et 3 (en bas de la page de résultats) afin qu'ils pointent maintenant vers mes pages nouvellement générées dynamiquement . Pour cela, je modifie l'attribut onclick de ces liens qui ouvrira une nouvelle fenêtre dans la fenêtre actuelle elle-même et écrira l'objet responseXML modifié dans la fenêtre nouvellement créée.

Maintenant, tout fonctionne super-à-dire l'extraction url , réordonner, créant ainsi une nouvelle fenêtre, écrivant l'objet responseXML ..

Mais le problème est que lorsque mes ces liens sont modifiés et cliqués ma fenêtre nouvellement générée remplace la fenêtre parente ne donne pas l'alerte de "onload fired" ... En fait, elle n'arrête pas le chargement, c'est-à-dire qu'elle affiche le contenu désiré mais n'est jamais complètement chargée car la barre d'état ne montre pas "fait" infact il affiche "waiting for clients1.google.com" ...

ne sait donc tout le monde ce qui se passe mal overhere exactement .. est-il dû à un script en cours d'exécution à la page de recherche Google qui est en quelque sorte synchronisé avec le contenu de la page ...

En gros pour ceux qui ne le font pas sachez comment greasemonkey fonctionnera ..... mon code supprime juste toutes les balises d'ancrage qui contiennent l'url et insère des balises d'ancrage similaires avec des urls différentes ... la question en bref est que je suis en train de faire une nouvelle fenêtre et de faire un document. écrire (cette page html nouvellement créée) ... et d'autres que les URLs je ne change rien ... donc fondamentalement sont les scripts en quelque sorte synchronisés avec les URL présents sur la page ou est-ce vraiment important pour les scripts quelles données est contenu tant que le corps contient le même arbre DOM

personnes, veuillez tout ce que vous savez ou avez idée de it..please me dire ...

je dois terminer cette chose rapidement ..

+0

Vous n'avez pas posté assez de code pour que nous sachions vraiment ce qui se passe. Poster le code complet, ou au moins assez pour dupliquer complètement le problème. –

+0

Je suis extrêmement désolé de ne pas poster suffisamment de code, mais depuis que je suis un débutant à stackoverflow je ne savais pas quoi tout publier. J'ai eu la chance d'obtenir la réponse désirée. Beaucoup de remerciements à des gens comme vous qui aident les autres dans leur heure de besoin sans même les connaître ... – Shatu

Répondre

1

Lorsque vous utilisez document.write pour écrire le contenu dans une nouvelle page , vous devez utiliser document.close() pour indiquer au navigateur que vous avez terminé - jusque-là, le navigateur pense qu'il y a plus de contenu à venir et continue d'afficher l'icône de chargement.

+0

Merci beaucoup Casablanca pour votre réponse spontanée et parfaite. Tu m'as fait une grande faveur. – Shatu

Questions connexes