Forums : Extensions

Aller à la discussion :  Plus récente Plus ancienne

# javascript sur une page web et extension firefox

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 :

  • Soit une extension firefox qui permet possède plusieurs javascript faisant appel à des xpcom (notement de lecture et écriture de fichiers en local)
  • Soit une page web (http://...), avec un bouton en HTML

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.

# Re: javascript sur une page web et extension firefox

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...

# Re: javascript sur une page web et extension firefox

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?

# Re: javascript sur une page web et extension firefox

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.

# Re: javascript sur une page web et extension firefox

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

# Re: javascript sur une page web et extension firefox

Envoyé par : Chris93

Date : 11/06/2008 16:38

J'utilisais quelque chose d'un peu similaire:

  • chargement d'un script signé dans un iframe caché puis affectation de l'équivalent de ton JSExtension à la fenêtre.

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...

# Re: javascript sur une page web et extension firefox

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.