Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# XHTMLDocument, load, DOM et affectation dans un 'browser'

Envoyé par : mlapt

Date : 05/10/2006 17:05

Bonjour

Je cherche à créer un XHTMLDocument vierge, y charger une page xhtml, la modifier avec DOM puis affecter ce doc à un objet 'browser' pour la rendre visible.

1) J'ai essayé ce ceci :

var xmldoc = document.implementation.createDocument("http://www.w3.org/1999/xhtml", "html", null);
xmldoc.async = false; // ??? est-ce juste ???
xmldoc.load("chrome://myproj/content/data/index.xhtml");

Mais à priori cela ne marche pas car :

var serializer = new XMLSerializer();
var xml = serializer.serializeToString(xmldoc);

xml est vide ???

2) Ensuite est-ce que je pourrai la modifier avec DOM comme ceci :

...getElementsByTagName('balise')[0].firstChild.data = 'mytest';

3) Et comment affecter ensuite ce doc à un objet 'browser' ???

En gros, je cherche à faire du PHP, pas réellement mais presque... ;-)

Merci beaucoup.

# Re: XHTMLDocument, load, DOM et affectation dans un 'browser'

Envoyé par : laurentj

Date : 09/10/2006 14:50

En gros, je cherche à faire du PHP, pas réellement mais presque... ;-)

C'est peut être ça ton problème :-p

Pourquoi tu n'ouvres pas directement ton document dans le browser justement ??

# Re: XHTMLDocument, load, DOM et affectation dans un 'browser'

Envoyé par : mlapt

Date : 10/10/2006 15:27

laurentj a écrit:

> En gros, je cherche à faire du PHP, pas
réellement mais presque... ;-)

C'est peut être ça ton problème :-p

Pourquoi tu n'ouvres pas directement ton document
dans le browser justement ??

Si je fais ça, le document HTML va s'afficher et ensuite seulement je vais pouvoir le modifier et le contenu va changer par la suite... donc c'est pas génial non ?

Voilà pourquoi j'essaie de contourner le pb.

Ps : en plus il y a le pb que le document HTML se charge de manière asynchrone et donc je ne sais pas quand il est fini de chargé.

# Re: XHTMLDocument, load, DOM et affectation dans un 'browser'

Envoyé par : neolao

Date : 11/10/2006 11:11

Tu charges avec XMLHttpRequest, donc tu sais quand c'est fini de charger grace à un événement.

Dès que tu obtiens la source en texte donc, tu peux modifier avec le DOMParser :

var dom = new DOMParser();
var doc = dom.parseFromString(ton_texte, "text/xml");

Après, utiliser

ton_browser.contentDocument

pour insérer ton DOM modifié

PS: purement théorique, jamais testé

# Re: XHTMLDocument, load, DOM et affectation dans un 'browser'

Envoyé par : mlapt

Date : 13/10/2006 16:57

Je charge bien le doc avec XMLHttpRequest, ensuite je le modifie bien avec le DOM (d'ailleurs on peut s'affranchir du DOMParser sur le responseText si on prend directement le responseXML) mais je n'arrive pas à réaffecter le tout dans le browser !

# Re: XHTMLDocument, load, DOM et affectation dans un 'browser'

Envoyé par : mlapt

Date : 13/10/2006 17:11

mlapt a écrit:

Je charge bien le doc avec XMLHttpRequest, ensuite
je le modifie bien avec le DOM (d'ailleurs on peut
s'affranchir du DOMParser sur le responseText si
on prend directement le responseXML) mais je
n'arrive pas à réaffecter le tout dans le browser
!

Je viens de trouver une méthode (cf. ci-dessous) mais il y a sans doute mieux non ? Vos avis svp ? Merci encore.

var serializer = new XMLSerializer();
var contenu = serializer.serializeToString(doc.documentElement);
document.getElementById("browser").setAttribute("src", "data:text/html,"+contenu);

# Re: XHTMLDocument, load, DOM et affectation dans un 'browser'

Envoyé par : laurentj

Date : 16/10/2006 18:17

Si je fais ça, le document HTML va s'afficher et ensuite seulement je vais pouvoir le modifier et le contenu va changer par la suite... donc c'est pas génial non ?

Je ne sais pas pourquoi tu tiens tout à faire en cachette, mais tu n'a que ce moyen.

Et pour detecter la fin d'un chargement de page, tu as ceci : /wiki/RessourcesLibs/CapturerChangementU(..)

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.