OVH Cloud OVH Cloud

Insertion HTML via DOm

6 réponses
Avatar
Nobody
Salut,

Je voudrais insérer une chaîne de caractères contenant du html à un
endroit donné de mon document, via le DOM.
Pb : La chaine n'est pas interprétée comme du html, mais comme du texte
(j'ai essayé avec element.firstChild.data et element.firstChild.nodeValue).
Or, j'aurais besoin de pouvoir l'insérer d'un coup, et qu'elle soit
directement interprétée (et de le faire proprement via le dom pour que
ce soit cross-browser).

Merci

6 réponses

Avatar
Thibaut Allender
Or, j'aurais besoin de pouvoir l'insérer d'un coup, et qu'elle soit
directement interprétée (et de le faire proprement via le dom pour que
ce soit cross-browser).


avec innerHTML ça ne devrait pas poser de problème
c'est pas du DOM, mais c'est reconnu par tous les browsers actuels, sauf
erreur de ma part

--
thibaut allender | http://capsule.org | http://photo.capsule.org

Avatar
ASM
Nobody wrote:
Salut,

Je voudrais insérer une chaîne de caractères contenant du html à un
endroit donné de mon document, via le DOM.
Pb : La chaine n'est pas interprétée comme du html, mais comme du texte
(j'ai essayé avec element.firstChild.data et element.firstChild.nodeValue).
Or, j'aurais besoin de pouvoir l'insérer d'un coup, et qu'elle soit
directement interprétée (et de le faire proprement via le dom pour que
ce soit cross-browser).

Merci


le plus simple est de faire du copyClonage
exemple (plus compliqué puisque d'une fenêtre à une autre ) :
http://perso.wanadoo.fr/stephane.moriaux/truc/copi_clone_popup/

var truc = document.getElementById('machin').cloneNode(true);
truc.id = 'machin_1';
truc.style.display='block';
var ici = document.getElementById('ici');
document.body.insertBefore(truc,ici);


<div id="machin" style="display:none;">
tout ce qu'on veut pour inserer plus tard
</div>

<div id="ici"></div>


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
ASM
Thibaut Allender wrote:

Or, j'aurais besoin de pouvoir l'insérer d'un coup, et qu'elle soit
directement interprétée (et de le faire proprement via le dom pour que
ce soit cross-browser).



avec innerHTML ça ne devrait pas poser de problème


non, avec innerHTML çà peut poser pb
sutout s'il y a des balises et z'imbrications et JS et etc ...

c'est pas du DOM, mais c'est reconnu par tous les browsers actuels, sauf
erreur de ma part


c'est reconnu par tout les navigateurs (sauf mon NC4.5)
pour ce que c'est censé faire : du coup par coup pas trop compliqué

en tous cas c'est risqué pour tenter de récupérer du contenu
et essayer de le coller ailleurs.
(là, j'en suis certain, il n'y a que IE qui rammase tout
les autres se contentant d'indiquer les balises)

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Nobody
Nobody wrote:

Salut,

Je voudrais insérer une chaîne de caractères contenant du html à un
endroit donné de mon document, via le DOM.
Pb : La chaine n'est pas interprétée comme du html, mais comme du
texte (j'ai essayé avec element.firstChild.data et
element.firstChild.nodeValue).
Or, j'aurais besoin de pouvoir l'insérer d'un coup, et qu'elle soit
directement interprétée (et de le faire proprement via le dom pour que
ce soit cross-browser).

Merci



le plus simple est de faire du copyClonage
exemple (plus compliqué puisque d'une fenêtre à une autre ) :
http://perso.wanadoo.fr/stephane.moriaux/truc/copi_clone_popup/

var truc = document.getElementById('machin').cloneNode(true);
truc.id = 'machin_1';
truc.style.display='block';
var ici = document.getElementById('ici');
document.body.insertBefore(truc,ici);


<div id="machin" style="display:none;">
tout ce qu'on veut pour inserer plus tard
</div>

<div id="ici"></div>




En l'occurence, il s'agit de :
a) récupérer du contenu dans une base de données via un objet
HttpRequest appelant une page php
b) permettre à l'utilisateur de switcher entre une vue "résumée" et une
vue "développée" d'un même article

Pour le clonenode, ce n'est donc pas possible : on doit bien partir
d'une chaîne de texte avec des balises html dedans.

NB : Il n'y aura pas de javascript dans cette chaîne. C'est une certitude.


Avatar
ASM
Nobody wrote:

Nobody wrote:

En l'occurence, il s'agit de :

a) récupérer du contenu dans une base de données via un objet
HttpRequest appelant une page php


donc la page php est ouverte et chargée qque part ?
avec son html en clair écrit dedans ?

si oui l'exemple donné me paraît pas mal :
http://perso.wanadoo.fr/stephane.moriaux/truc/copi_clone_popup/



ou bien tout le html est généré par le php
et alors il y a un blème de ce côté ?

b) permettre à l'utilisateur de switcher entre une vue "résumée" et une
vue "développée" d'un même article


http://perso.wanadoo.fr/stephane.moriaux/truc/jouer_avec_divs.htm

Pour le clonenode, ce n'est donc pas possible : on doit bien partir
d'une chaîne de texte avec des balises html dedans.


ben ! et que crois-tu qu'on clone-node d'habitude ?
et le HttpRequest (c'est du XML ce truc non ?) ne t'en fournit pas ?
et ne le place pas au bon endroit ?

NB : Il n'y aura pas de javascript dans cette chaîne. C'est une certitude.


c'est déjà çà de pris :-)


--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Nobody
Nobody wrote:


Nobody wrote:

En l'occurence, il s'agit de :

a) récupérer du contenu dans une base de données via un objet
HttpRequest appelant une page php



donc la page php est ouverte et chargée qque part ?
avec son html en clair écrit dedans ?

si oui l'exemple donné me paraît pas mal :
http://perso.wanadoo.fr/stephane.moriaux/truc/copi_clone_popup/



ou bien tout le html est généré par le php
et alors il y a un blème de ce côté ?



Alors, la page php n'est pas présente : l'objet httprequest y fait
simplement un appel, et récupère la chaîne résultante.

b) permettre à l'utilisateur de switcher entre une vue "résumée" et
une vue "développée" d'un même article



http://perso.wanadoo.fr/stephane.moriaux/truc/jouer_avec_divs.htm

Pour le clonenode, ce n'est donc pas possible : on doit bien partir
d'une chaîne de texte avec des balises html dedans.



ben ! et que crois-tu qu'on clone-node d'habitude ?
et le HttpRequest (c'est du XML ce truc non ?) ne t'en fournit pas ?
et ne le place pas au bon endroit ?



Mais oui ! Je suis une andouille (inutile de confirmer). Je fais pour
l'instant appel à responseText, mais je peux utiliser le responseXML,
qui lui devrait logiquement me fournir un objet xml que jepourrais
cloner pour le mettre au bon endroit dans le document. Je vais tester
ça, ça devrait être bon.

Merci tout plein.

NB : Il n'y aura pas de javascript dans cette chaîne. C'est une
certitude.



c'est déjà çà de pris :-)