Page 1 sur 1
écrire du html dans une div DOM
Posté : 21 mai 2008, 14:32
par mcorgnet
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.
Posté : 21 mai 2008, 14:35
par steph29
un peu de code? notemment la fonction JS...

Posté : 21 mai 2008, 14:39
par Cyrano
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

Posté : 21 mai 2008, 14:52
par mcorgnet
Comme je dis toujours quand j'ai pas envie de me faire chier :
les utilisateurs iront se faire foutre.
C'est dit.
Posté : 21 mai 2008, 14:53
par Cyrano
Oups...

ben si tu le dis...
Posté : 21 mai 2008, 15:03
par steph29
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
suffit

Posté : 21 mai 2008, 15:04
par mcorgnet
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.
Posté : 21 mai 2008, 15:07
par Cyrano
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
suffit

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.
Posté : 21 mai 2008, 15:18
par steph29
@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...

Posté : 21 mai 2008, 15:27
par mcorgnet
@mcorgnet: désolé de vouloir t'aider, promis je le referas plus...

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 ...
Posté : 21 mai 2008, 15:29
par steph29
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>