écrire du html dans une div DOM

Mammouth du PHP | 514 Messages

21 mai 2008, 14:32

Bonjour,

J'ai une div sur mon site, construite avec Javascript. En fait, j'appelle une fonction JS, dans laquelle je passe un paramètre (du texte), qui est inséré automatiquement dans la div avec document.createTextNode();

Je voudrais permettre l'écriture de balises html dans cette div (notamment <br />), mais javascript ne me le traduit pas. Les \r\n ne renvoient pas à la ligne non plus ...

Comme elle est construite en JS, j'imagine qu'il doit exister une solution.

Merci de votre aide.

Eléphant du PHP | 175 Messages

21 mai 2008, 14:35

un peu de code? notemment la fonction JS... :wink:

Mammouth du PHP | 19672 Messages

21 mai 2008, 14:39

il faut séparer les éléments de chaine avec l'équivalent JavaScript de explode() sur les retours chariot, avec, sauf erreur, split() qui marche bien.

Tu vas obtenir un tableau et en bouclant, tu crées un textNode et tu y ajoutes ensuite un <br /> obtenu avec createElement('br'). Tu ajoutes ton contenu avec appendChild au fur et à mesure bien entendu et ça devrait fonctionner :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 514 Messages

21 mai 2008, 14:52

Comme je dis toujours quand j'ai pas envie de me faire chier :

les utilisateurs iront se faire foutre.

C'est dit.

Mammouth du PHP | 19672 Messages

21 mai 2008, 14:53

Oups... :shock: ben si tu le dis...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 175 Messages

21 mai 2008, 15:03

Comme je dis toujours quand j'ai pas envie de me faire chier :

les utilisateurs iront se faire foutre.

C'est dit.
dans ce cas un

Code : Tout sélectionner

document.getElementById('ton_div_id').innerHTML=texte;
suffit :twisted:

Mammouth du PHP | 514 Messages

21 mai 2008, 15:04

Hu hu,

et je donne ton numéro de téléphone pour appels en cas de problème.
Comme je dis toujours quand j'ai pas envie de me faire chier :
Je précise :

En tout bien tout honneur.

Mammouth du PHP | 19672 Messages

21 mai 2008, 15:07

Comme je dis toujours quand j'ai pas envie de me faire chier :

les utilisateurs iront se faire foutre.

C'est dit.
dans ce cas un

Code : Tout sélectionner

document.getElementById('ton_div_id').innerHTML=texte;
suffit :twisted:
Ben oui, mais il faudra quand même faire un split sur le texte pour isoler les retours chariot ... à un détail près : si les \r\n ne sont pas transformés, il n'y aura aucun retours à la ligne dans l'affichage... CQFD, une méthode ou l'autre ça revient au même.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 175 Messages

21 mai 2008, 15:18

@cyrano pas si sur :

Code : Tout sélectionner

document.getElementById('ton_div_id').innerHTML=texte.replace(/\r\n/,'<br />');
@mcorgnet: désolé de vouloir t'aider, promis je le referas plus... :oops:

Mammouth du PHP | 514 Messages

21 mai 2008, 15:27

@mcorgnet: désolé de vouloir t'aider, promis je le referas plus... :oops:
Ha non, ça m'a fait plaisir.

Mais il y a des modifications que je suis prêt à faire, d'autres pas. Ici, en l'occurence, il s'agit seulement de mettre un retour ligne sur une information sans importance, je n'ai pas envie de me casser la tête. Si la solution avait été plus simple, je l'aurais fait, en l'occurrence, elle ne l'est pas ...

Eléphant du PHP | 175 Messages

21 mai 2008, 15:29

elle est simple la modif...mais sans ton code on peut pas faire mieux...

voici un exemple qui fonctionne (a adapter a ton cas)

Code : Tout sélectionner

<textarea id="toto">titi tutu tata toto </textarea> <div id="tutu"></div> <script type="text/javascript"> var texte=document.getElementById('toto').value; texte=texte.replace(/\r\n/g,'<br />'); document.getElementById('tutu').innerHTML=texte; </script>