Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# onLocationChange

Envoyé par : Drazic

Date : 07/02/2006 18:53

Bonjour à tous,

Je cherche à détecter chaque changement de page que l'utilisateur effectue. Je connais pour le moment la fonction onLocationChange :

var changePage =
{
  onLocationChange:function(aProgress, aRequest, aLocation)
  {
    ...
  }
}

Le problème est que je souhaite récupérer le titre de la page une fois qu'elle a changé et qu'elle est chargée. Or, la fonction onLocationChange se lance au moment où l'utilisateur clique sur un lien.

Y a-t-il une fonction plus ou moins similaire à onLocationChange qui nous avertirait lorsqu'une page est chargée ? Ou une fonction que je peux associer à onLocationChange qui permet d'attendre la fin du chargement de la page ?

Merci d'avance !

# Re: onLocationChange

Envoyé par : laurentj

Date : 08/02/2006 10:25

Ton objet changePage doit en fait implémenter l'interface nsIWebProgressListener. Tu remarqueras donc que tu devrais implementer aussi les méthodes onProgressChange, onStateChange et onStatusChange, pour être tenu au courant de la progression du téléchargement de la page. Donc tu peux être tenu au courant de la fin du téléchargement et à ce moment là, tu pourras récuperer le titre de la page.

# Re: onLocationChange

Envoyé par : Drazic

Date : 09/02/2006 16:25

Ok, merci, j'avais justement des erreurs lorsque je lançait mon application et que les fonctions que tu as cité n'étaient pas présentes.

Donc je peux maintenant attendre la fin du chargement de la page...

Mais maintenant, j'ai un autre problème, toujours plus ou moins dans le même registre :

Je programme ma barre pour un site que vous pourrez trouver à l'adresse http://www.noxblog.com.

Lorsqu'un utilisateur se connecte sur le site, il accède via un formulaire POST à la page http://www.noxblog.com/login.php. Et lorsqu'il se déconnecte, il clique sur un lien qui le dirige à la page http://www.noxblog.com/logout.php. Dans les deux cas, au final, l'utilisateur sera redirigé sur la page qu'il visite actuellement.

J'utilise la fonction onLocationChange pour détecter les changements de pages (cette fois, je dois traiter les informations lorsque l'utilisateur clique, je ne dois pas attendre la fin du chargement de la page).

Le problème est que justement, lorsqu'un utilisateur se connecte ou se déconnecte, la fonction onLocationChange détecte quelque chose, mais j'aurais besoin de récupérer l'url sur laquelle l'utilisateur a cliqué.

Voici le code que j'utilise pour le moment :

var changePage =
{
  onLocationChange:function(aProgress, aRequest, aLocation)
  {
    alert(aRequest.URI.spec);
  }
}

Ma fonctionne détecte presque tous les changements de pages, SAUF justement la page de login ou de logout, où "aRequest.URI.spec" est vide...

Quelqu'un aurait-il une solution ?

Merci d'avance à tous !

# Re: onLocationChange

Envoyé par : laurentj

Date : 10/02/2006 10:30

Tu n'as pas trop lu le lien que je t'ai donné apparement ;-) Relis le nom du troisième paramètre ;-)

# Re: onLocationChange

Envoyé par : Drazic

Date : 10/02/2006 18:09

Sisi, je peux remplacer le alert par :

alert(aLocation.spec);

Le problème reste le même. En fait, en cliquant sur le lien "logout.php", la page en retour sera la page sur laquelle l'utilisateur se trouve lorsqu'il clique sur le lien (donc en gros, il se trouve sur n'importe quelle page du site, le lien est présent et lorsqu'il clique dessus, il est simplement déconnecté mais reste sur la même page). Et aLocation.spec me retourne l'adresse de destination...

Ce que je cherche, c'est que si l'on clique sur le lien "logout.php", qu'on me retourne ce sur quoi l'utilisateur a cliqué ! Il y a peut-être une solution qui n'a rien à voir avec onLocationChange.

# Re: onLocationChange

Envoyé par : Utilisateur anonyme

Date : 21/02/2006 23:47

Je suis également sur un projet qui demande à lancer un script à chaque chargement de page, voici la solution que j'ai trouvée, elle marche aux petits oignons http://kb.mozillazine.org/On_Page_Load

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.