Forums : Extensions

Aller à la discussion :  Plus récente Plus ancienne

# Detection changement de page sur le premier onglet

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 ?

# Re: Detection changement de page sur le premier onglet

Envoyé par : abdoulax

Date : 04/09/2007 18:16

Il y avait un conflit d'évenement avec window.addEventListener("load" ...

# Re: Detection changement de page sur le premier onglet

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

# Re: Detection changement de page sur le premier onglet

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

# Re: Detection changement de page sur le premier onglet

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 :)

# Re: Detection changement de page sur le premier onglet

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);
      ...
}

# [Resolu] Detection changement de page sur le premier onglet

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.