Envoyé par : vivelapsp
Date : 23/04/2009 14:05
Bonjour à tous,
Je commence a développer une extension pour firefox et je me hurte déja à un problème...
Le code ci dessous est censé m'afficher un message a chaque nouvelle page web visité, il fonctionne très bien tant que l'on n'utilise pas le premier onglet.
Le premier onglet lui se retrouve, a cause de ce code, avec une barre de navigation buggée (certain bouton grisé qui ne devrait pas, adresse url non actualisé, et le problème est bien la).
Quelqu'un peut il m'aider a faire en sorte que ce code marche parfaitement ? Je ne vois pas du tout d'ou ca peut venir.
var urlChangeListener = { // fonction appelée à chaque changement de page ou d'onglet onLocationChange:function(aWebProgress, aRequest, aLocation) { if (aLocation && aWebProgress.isLoadingDocument) // on verifie qu'il y a une url indiquée { alert('Page actuellement visite : ' + window._content.document.location + '\nDate et heure : ' + new Date()); } },
onProgressChange:function(webProgress, request, curSelfProgress, maxSelfProgress, curTotalProgress, maxTotalProgress ){ },
onSecurityChange:function(webProgress, request, state ){ },
onStateChange:function(webProgress, request, stateFlags, status){ },
onStatusChange:function(webProgress,request , status, message ){ },
QueryInterface:function(iid){ if(!iid.equals(Components.interfaces.nsISupports) && !iid.equals(Components.interfaces.nsIWebProgressListener)) throw Components.results.NS_ERROR_NO_INTERFACE; return this; } };
// Ici on déclare maintenant notre listener auprés du tabbrowser de firefox window.getBrowser().addProgressListener( urlChangeListener , Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
Merci d'avance
Envoyé par : laurentj
Date : 23/04/2009 18:48
Salut,
evite les alert, puisque ça bloque tout. D'où certainement ces fonctionnements bizarres. Trouve un autre moyen d'afficher ton message.
Envoyé par : vivelapsp
Date : 23/04/2009 22:33
Merci pour ta réponse mais cela ne vient pas de la... L'alert était juste la pour faire des tests, je ne l'utilise pas mais ai le même probleme. D'ailleurs, cette ligne de code peut tres bien être passée en commentaire, le problème persiste.
Envoyé par : laurentj
Date : 24/04/2009 12:06
faut rajouter le support de nsISupportsWeakReference dans QueryInterface..
M'enfin je ne comprend pas pourquoi tu aurais ces problèmes. Ca doit peut être venir d'ailleurs.
Regarde la console javascript, active les options de debug etc (cf le wiki). Et utilise un profil vierge. Evite d'utiliser ton profil "de tout les jours"
Envoyé par : vivelapsp
Date : 24/04/2009 14:27
J'ai fait ce que tu m'a dit mais toujours le même bug, et la je viens à l'instant de trouver ce post Désolé pour le dérangement donc, je n'avais pas vu ce sujet...
Merci quand même pour ton aide !
J'ai pourtant encore un p'tit problème...cette fonction que j'ai mis si longtemps a faire fonctionner n'ai pas la plus adapté a ma situation ! En effet, plutot que de repérer toutes les urls lancés par le navigateur (ce que je fais ici), je souhaiterais plutot récupérer toutes les urls que l'utilisateur a directement choisis.
Je m'explique : quand une page est automatiquement actualisé, ou encore quand il y a une redirection automatique (tout ce qui se fait a l'insu de l'utilisateur donc), je ne veux pas enregistrer l'url.
Cela revient donc a enregistrer seulement les urls tapés dans la barre de navigation ET les urls sur lesquels l'utilisateur clique. J'ai donc chercher du coté 'onClick' de javascript mais cela ne semble être concu que pour être associé a un élément précis de la page. Je voudrais surveiller n'importe quel lien de n'importe quel page web sur lequel l'utilisateur clique, et enregistrer l'url de destination.
Reste ensuite l'enregistrement de l'url dans la barre de navigation, seulement quand l'utilisateur y a tapé une adresse, mais je dois avouer que de ce coté, je n'ai pas encore cherché.
Envoyé par : vivelapsp
Date : 27/04/2009 15:32
Personne n'a une idée ? :( J'ai chercher un peu partout sans succès...
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.