Envoyé par : abdoulax
Date : 03/09/2007 10:18
Bonjour,
La detection de changement de page, marche parfaitement pour tous les onglets, sauf pour le premier.
var urlChangeListener = { // fonction appelée à chaque changement de page ou d'onglet onLocationChange:function(aWebProgress, aRequest, aLocation) { test(); }, onStateChange: function ( webProgress, request, stateFlags, status) { test(); }, onProgressChange :function ( webProgress, request, curSelfProgress, maxSelfProgress, curTotalProgress, maxTotalProgress ) { test(); }, onStatusChange: function( webProgress,request , status, message ) { test(); }, // on définit les autres fonctions de l'interface, même si on n'y fait rien // sinon cela provoque des erreurs javascript onSecurityChange: function ( webProgress, request, state ){ }, QueryInterface : function (iid) { if(!iid.equals(Components.interfaces.nsISupports) && !iid.equals(Components.interfaces.nsIWebProgressListener)) throw Components.results.NS_ERROR_NO_INTERFACE; return this; } }; window.getBrowser().addProgressListener( urlChangeListener , Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
Quelqu'un aurait-il une idée ?
Envoyé par : abdoulax
Date : 04/09/2007 18:16
Il y avait un conflit d'évenement avec window.addEventListener("load" ...
Envoyé par : emri
Date : 16/02/2008 23:05
Bonjour,
J'ai le même problème mais je ne sais pas comment éviter ce conflit dont tu parles, quelqu'un pourrait-il m'aiguiller ?
Merci
Envoyé par : abdoulax
Date : 17/02/2008 15:09
Tu as de la chance, j'ai retrouvé comment j'ai fait.
En fait tu créé l'evenement seulement une fois l'evenement load passé. Il te suffi de le faire dans la fonction appelé par le load.
gBrowser.addProgressListener(urlChangeListener, Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
Voilou,
Have fun
Envoyé par : emri
Date : 24/02/2008 07:02
Merci à toi d'avoir retrouvé cela pour me renseigner. Malgré tout, je ne comprends pas ce que tu veux dire :(
Je cite: En fait tu créé l'evenement seulement une fois l'evenement load passé.Il te suffi de le faire dans la fonction appelé par le load.
Je suppose que tu appelle evenement l'écouteur urlChangeListener mais qu'entends tu par l'evenement load?
Personnellement, mon javascript étant chargé depuis un overlay (donc dès le démarrage de firefox), l'evenement appellant mon JS est interne à Firefox.
Merci :)
Envoyé par : abdoulax
Date : 24/02/2008 12:45
Quand je parle d'evenement, je parle de l'action executé sur ton écouteur (evenement ouverture de firefox).
Donc tu crées ton écouteur load, qui appel une fonction au chargement de FF et dans cette fonction, tu crées le nouvel écouteur.
window.addEventListener("load", function() { init(); }, false); function init() { gBrowser.addProgressListener(urlChangeListener, Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT); ... }
Envoyé par : emri
Date : 24/02/2008 19:48
Super merci beaucoup, je vois ce que tu veux dire maintenant.
Je viens donc d'appliquer cela et ça marche nickel !
Encore merci ;)
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.