Envoyé par : deth
Date : 29/05/2006 23:57
Bonjour,
Je suis nouveau et débutant en xul et extensions firefox. Soyez indulgents svp :D Je voudrais savoir comment modifier le contenu du browser dans le script de mon extention mais je n'y arrive pas.
Voici mon code :
var htmlDocument = content.document; // je charge la page que je veux modifier dans le browser htmlDocument.location = "chrome://dueler/content/page.html"; // ici je recupere juste un <ul id="infos">...</ul> var infos_list = htmlDocument.getElementById("infos"); // ceci ne fonctionne pas !! dump(infos_list.innerHTML); // Je veux rajouter un element a ma liste, mais ceci ne fonctionne pas non plus !! var info = htmlDocument.createElement("li"); var text = htmlDocument.createTextNode("Une ligne de test"); info.appendChild(text); infos_list.appendChild(info);
Si vous pouviez m'eclairer sur le comment du pourquoi, je vous en serais fort reconnaissant ^^ Merci
deth.
Envoyé par : laurentj
Date : 30/05/2006 10:04
var htmlDocument = content.document;
c'est window._content.document..
et c'est htmlDocument.location.href
Et evite d'utiliser innerHtml, c'est crade d'un point de vue DOM, c'est pas standard.
Envoyé par : deth
Date : 30/05/2006 11:59
Merci pour ces précisions, mais cela ne fonctionne toujours pas.
var infos_list = htmlDocument.getElementById("infos"); var info = htmlDocument.createElement("li"); var text = htmlDocument.createTextNode("Une ligne de test"); info.appendChild(text); infos_list.appendChild(info);
Ce bout de code ne rajoute pas d'élément à liste, et dans la console javascript j'ai ce message d'erreur : Erreur : infos_list has no properties
Je ne comprends pas pourquoi... :(
Envoyé par : laurentj
Date : 30/05/2006 13:44
tu es sûr que ta page chrome://dueler/content/page.html est bien déclarée dans le chrome ? Si tu tentes de l'afficher dans le navigateur à la main, elle s'affiche au moins ?
Envoyé par : deth
Date : 30/05/2006 15:22
Oui, la page s'affiche lorsque je tape chrome://dueler/content/page.html et tout est bien declaré dans le chrome. A moins que quelque chose m'est échappé, j'ai bien suivi le tutorial sur http://developer.mozilla.org. J'ai beau chercher sur le net, je ne trouve rien qui puisse m'aider dans les tutos.
Envoyé par : laurentj
Date : 30/05/2006 16:00
essaye (respecte bien l'ordre)
window._content.location.href = "chrome://dueler/content/page.html"; var htmlDocument = window._content.document
En effet, dans ton code, je soupsonne que le document soit bien chargé, mais alors le window._content.document n'est plus le même objet document. Et toi tu accedes toujours à l'ancien document puisque tu y accede via htmlDocument qui contient l'ancien document.
Il y a peut être aussi un autre problème : tu tente d'acceder au document alors qu'il n'a pas fini d'être chargé. en effet, le chargement se fait de manière asynchrone. Il va donc peut etre falloir que tu utilises un nsIURIProgressListener sur ta fenetre.
Envoyé par : deth
Date : 30/05/2006 16:11
Effectivement, le chargement de la page se faisait après l'execution de ce code, du coup je ne travaillai pas avec la bonne page HTML. J'ai réparé ca.
Merci beaucoup laurentj ! :D
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.