Bonjour
Je souhaites réaliser un petit addon Firefox qui me paraissais assez simple malgré mon état de débutant en Javascript : créer un menu contextuel qui insère un texte défini dans un textarea.
En me basant sur le HelloWorld proposé sur MDN, j’arrive sans soucis à créer le menu et à le lier à une fonction qui affiche une alerte par exemple, mais lorsque je veux interagir avec mon document html, il semble ne rien se passer.
Je passe les manifest et autre, tout s’installe bien
Je met le fichier XUL si ça peut aider, mais ma commande semble bien appellée, peut-être pas de la bonne façon ceci-dit
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="chrome://global/skin/" ?>
<?xml-stylesheet type="text/css"
href="chrome://chocoDF/skin/browserOverlay.css" ?>
<!DOCTYPE overlay SYSTEM
"chrome://chocodf/locale/browserOverlay.dtd">
<overlay id="chocoDF-browser-overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript"
src="chrome://chocodf/content/browserOverlay.js" />
<popup id="contentAreaContextMenu">
<menuseparator/>
<menu id="chocoDF" label="chocoDF">
<menupopup id="chocoDF" label="chocoDF">
<menuitem insertafter="Properties" label="Infodistri" oncommand="chocoDFChrome.BrowserOverlay.cmd_infodistri(event);" />
</menupopup>
</menu>
</popup>
</overlay>
Le code suivant m’affiche une boite de dialogue avec null alors que je suis certain qu’un textarea avec l’Id brandLogo existe sur ma page de test. Je m’attendrais donc à voir [object HTMLInputElement] dans la boite et pas null.
if ("undefined" == typeof(chocoDFChrome)) {
var chocoDFChrome = {};
};
/**
* Controls the browser overlay for the Hello World extension.
*/
chocoDFChrome.BrowserOverlay = {
/**
* Says 'Hello' to the user.
*/
cmd_infodistri : function(aEvent) {
window.alert(document.getElementById("req_message"));
}
};
Que manque-t-il dans mon code pour que j’arrive à récupérer un élément du document HTML ?