Forums : Extensions

Aller à la discussion :  Plus récente Plus ancienne

# Comment faire pour modifier le contenu HTML

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.

# Re: Comment faire pour modifier le contenu HTML

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.

# Re: Comment faire pour modifier le contenu HTML

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

# Re: Comment faire pour modifier le contenu HTML

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 ?

# Re: Comment faire pour modifier le contenu HTML

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.

# Re: Comment faire pour modifier le contenu HTML

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.

# Resolu : Merci pour tout

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.