Envoyé par : morphine
Date : 01/06/2007 00:18
Bonjour,
Je suis faire communiquer une page web avec une extension firefox déjà développé. Je m'explique :
J'aimerais que l'appui sur le bouton de la page web, appel une fonction javascript qui se trouve dans mon extension firefox. Comment cela est-il faisable ?
Merci d'avance.
Envoyé par : snotling
Date : 04/06/2007 15:26
Je peux te donner une technique, je ne sais pas si c'est sensé être "propre". En l'occurence, utiliser des évènements DOM pour dialoguer entre "content" et "chrome".
Du genre, dans ton overlay de browser.xul:
document.addEventListener("myEvent", function(e){ ... }, false, true);
Et dans ta page web, tu lances cet évènement "myEvent".
Techniquement, ça marche. À voir si c'est la meilleure solution...
Envoyé par : The_Did
Date : 11/06/2007 11:20
Bonjour, je viens de lire ce sujet et je voudrais savoir si la solution donnée par snotling marche car je voudrais faire la meme chose.
Problème: j'essaye de lancer un evenement avec dispatchEvent puis dans mon xul je suis en attente de cet evenement.
Mais j'ai des erreurs avec dispatchEvent
Est ce la bonne technique?
Envoyé par : morphine
Date : 11/06/2007 11:49
Bonjour, j'ai finalement trouvé une autre méthode très smart : CECI EST JUSTE UNE IDÉE DE COMMENT FAIRE, DÉSOLÉ DE NE PAS METTRE PLUS DE DÉTAIL PAR MANQUE DE TEMPS (J'AI FAIT JUSTE UN COPIER/COLLER DE MON CODE SOURCE) !!!
1) dans la page web
var JSPageWeb = { helloFromWebPage: function() { alert('hello de la page web'); }, initPage: function() { createCalendar() ; } } var JSExtension = null ;
2) dans l'extension une fois que la page est chargé (onload) :
window.getBrowser().addEventListener("load", morphinesynch.initExtranet, true);
var JSExtension = { helloFromExtension : function() { alert("Bonjour de l'extension") ; }, } var JSPageWeb = null ;
var morphinesynch = { initExtranet: function() { if (window.getBrowser().contentDocument.getElementById('morphinesynchcalendrier')) { getBrowser().contentWindow.wrappedJSObject.JSExtension = JSExtension ; JSPageWeb = getBrowser().contentWindow.wrappedJSObject.JSPageWeb ; JSPageWeb.initPage(); } }, }
3) c'est fait : à partir de la page web on peut appeler une fonction de l'extension avec JSExtension.helloFromExtension() à partir de l'extension on peut appeler une fonction de la page avec JSPageWeb.helloFromWebPage() ..on peut aussi mettre des arguments dans les fonctions sans problème particulier.
Salutations.
Envoyé par : The_Did
Date : 11/06/2007 12:00
merci je vais tester et adapter ta méthode qui a l'air pas mal du tout
Envoyé par : Chris93
Date : 11/06/2008 16:38
J'utilisais quelque chose d'un peu similaire:
Ca marchait avec FF2 mais je me fais jeter par FF3. J'ai testé ton extension qui fonctionne avec FF2 mais pas avec FF3.
Si quelqu'un a une solution je suis preneur...
Envoyé par : nesfe
Date : 20/08/2009 09:56
quelqu'un pourrait-il faire un exemple plus complet si possible car cette fonctionnalité m'intéresse beaucoup mais je n'arrive pas à la faire fonctionner
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.