Envoyé par : Inno
Date : 01/02/2009 01:45
Bonjour à tous,
Pour ma première extension j'ai décidé d'éssayé de suivre le tutorial pour capturer une URL et faire une redirection (http://xulfr.org/wiki/RessourcesLibs/CapturerChangementURL).
Mon problème ne vient de je ne sais d'où. (:-S)
Mon extension s'installe correctement dans Firefox, cependant rien n'intervient. Si je tape : http://www.google.fr/ dans la barre d'adresse, je n'obtient aucune modification.
Je me permet de vous mettre le lien de mes fichiers :
Je vous remercie d'avance.
Cordialement, Inno.
Envoyé par : Paul Rouget
Date : 01/02/2009 04:26
Il faut que tu fasses ça dans browser.xul, dans un overlay, et pas dans ta propre page XUL.
Envoyé par : Inno
Date : 01/02/2009 16:35
Merci pour ta réponse.
Donc cela devrait ressembler à quelque chose comme sa (ci-dessous) :
Avec cela j'obtiens que le premier onglet reste toujours à l'adresse : http://www.google.fr/ (bien que la page puisse changer) et il est impossible de le fermer.
:-S
content geturl chrome/content/ locale geturl fr chrome/locale/fr_FR/ locale geturl us chrome/locale/en_US/ skin geturl classic/1.0 chrome/skin/ overlay chrome://browser/content/browser.xul chrome://geturl/content /overlay.xul
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- Ici le fichier Javascript que je veux executer --> <overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/x-javascript" src="chrome://geturl/content/geturl.js"/> </overlay>
//Mon fichier Javascript pour charger une page à la place de Google var urlChangeListener = { // fonction appelée à chaque changement de page ou d'onglet onLocationChange:function(aWebProgress, aRequest, aLocation) { if (aLocation) // on verifie qu'il y a une url indiquée { // aLocation.spec permet de récuperer l'url à charger var url = aLocation.spec; // Petit test pour voir si url == "http://www.google.fr/" if (url == "http://www.google.fr/") { // Si le test est vrai, alors on change la valeur "location" // du navigateur ce qui correspond a une redirection en interne window._content.document.location = "http://xulfr.org"; } } }, // on définit les autres fonctions de l'interface, même si on n'y fait rien // sinon cela provoque des erreurs javascript 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. Cordialement, Inno
Envoyé par : Inno
Date : 05/02/2009 07:10
J'ai beau modifié un peu tout, je ne vois pas du tout. Personne n'a une idée ? :/
Envoyé par : Paul Rouget
Date : 10/02/2009 20:01
Tu n'as aucune erreur dans ta console js ? Es tu en mode strict ?
Envoyé par : Inno
Date : 10/02/2009 22:34
Bonsoir,
Après beaucoup de modifications, effectivement je viens de trouver ou se situe l'erreur. En effet c'est une erreur du au Javascript.
J'ai modifié en me redirigeant un peu plus vers ce que je désirai faire avec mon extension et ceci à l'air de plutôt bien fonctionner.
Maintenant je cherche a envoyer l'adresse récupérer dans une base de donnée, mais je vais chercher tout sa (enfin si vous avez des pistes je suis preneur ;-)).
//Mon fichier Javascript pour afficher la page actuelle dans un pop-up var urlChangeListener = { // fonction appelée à chaque changement de page ou d'onglet onLocationChange:function(aWebProgress, aRequest, aLocation) { if (aLocation) // on verifie qu'il y a une url indiquée { // aLocation.spec permet de récuperer l'url à charger var url = aLocation.spec; // Petit test pour voir si url == "http://www.test.fr/" var urlbaradresse = document.getElementById("urlbar").inputField.value; alert(url); } }, // on définit les autres fonctions de l'interface, même si on n'y fait rien // sinon cela provoque des erreurs javascript 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 beaucoup pour votre aide en tout cas.
Cordialement, Inno.
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.