Je développe une extension Firefox qui place un bouton dans la barre d'état. Lorsque le bouton est cliqué, l'extension injecte du Javascript dans la page en cours. Ce Javascript a une fonction que je voudrais invoquer avec quelques paramètres. J'ai réussi à injecter le code, j'ai inspecté la page via Firebug et vérifié que le JS a été injecté. Comment puis-je appeler une fonction Javascript dans la page de mon extension?Exécution d'un code Javascript injecté dans une page lors du développement d'une extension Firefox
--More informations
Voici le code que j'utilise pour injecter mon Javascript:
var doc = window.content.document;
//Add the script
var visibilityJS = doc.createElement("script");
visibilityJS.setAttribute("type", "text/javascript");
visibilityJS.setAttribute("charset", "UTF-8");
visibilityJS.setAttribute("src", "chrome://visibility/content/scripts/visibility.js");
head.appendChild(visibilityJS);
//Call the function
alert("Executing testfunction");
window.content.document.defaultView.testFunction();
..et le code dans mon fichier JS que je vais injecter. c'est-à-dire visibilité.js
window.testFunction = function() {
alert("Message");
}
Merci.
Salut Felix. Je n'arrivais pas à comprendre ce que tu voulais dire. J'ai aussi essayé de lire la documentation, c'est-à-dire la page que vous avez indiquée, mais je n'arrivais toujours pas à l'obtenir. J'ai essayé 'window.content.document.' mais cela n'a pas fonctionné. Auriez-vous un exemple simple ou quelque chose? Merci. –
@Mridang Agarwalla: Vous êtes proche. 'window.content.document' devrait vous donner la même chose que' gBrowser.contentDocument'. Mais cela vous donne l'objet 'document' du site web. Les variables globales sont toujours les propriétés de l'objet 'window' du site web. 'document.defaultView' devrait vous donner cet objet. Essayez 'window.content.document.defaultView.'. –
Salut à nouveau Félix. Je n'arrive toujours pas à y accéder. J'obtiens l'erreur suivante - 'window.content.document.defaultView.testFunction' n'est pas une fonction. J'ai essayé d'invoquer 'testFunction' de la console JavaScript et cela a fonctionné mais l'extension est toujours incapable d'y accéder. Est-ce que j'ajoute quelque chose ou modifie mon code Javascript injecté de quelque façon que ce soit? Merci encore. –