OVH Cloud OVH Cloud

retour à la ligne et textarea

4 réponses
Avatar
p_geni...
Bonjour,

j'essaie de remplir un champ textarea avec une fonction en javascript

8<----------------------------------------------------------------------
<script language="javascript" type="text/javascript">

function show_msg() {
var reply = "aaa\nbbbb\ncccc\nddddd";
document.getElementById('xbody').innerHTML = reply;
alert(reply);

}
</script>


<a href="javascript:show_msg()">show </a>
<textarea wrap="virtual" id="xbody" name="xbody">
</textarea>
8<----------------------------------------------------------------------

- cela fonctionne correctement avec FireFox
- avec IE: le champ est bien rempli mais pas de retours à ligne
le textarea affiche : aaa bbbb cccc ddddd sans retour à la ligne
- avec Opera le champ textarea reste vide !!!

je voudrais faire une fonction "multi-navigateur" qui permette
de remplir ce textarea avec conservation des retours à ligne.

Merci de votre aide,
Pierre.


-----
échangez opinions et commentaires dans les forums de discussion.
http://www.usenetgratuit.com/

4 réponses

Avatar
YD
Bonjour,

j'essaie de remplir un champ textarea avec une fonction en javascript
[...]
document.getElementById('xbody').innerHTML = reply;


Remplace innerHTML par value et cela devrait fonctionner mieux.

--
Y.D.

Avatar
p_geni...
YD wrote:


Remplace innerHTML par value et cela devrait fonctionner mieux.



je confirme.

Merci bien,
Pierre.

-----
échangez opinions et commentaires dans les forums de discussion.
http://www.usenetgratuit.com/

Avatar
p_geni...
YD wrote:


Remplace innerHTML par value et cela devrait fonctionner mieux.


j'ai un petit problème lorsque je rempli le champ textarea
avec une fonction en javascript

les &gt; ne sont pas affichés: >
les &lt; ne sont pas affichés: <
et les &amp; ne sont pas affichés: &

8<----------------------------------------------------------------------
<script language="javascript" type="text/javascript">

function show_msg() {
var reply = "&gt; n aaaa n &lt; &amp; ";
document.getElementById('xbody').value = reply;
alert(reply);

}
</script>
8<----------------------------------------------------------------------

existe-t-il une autre façon pour remplir ce textarea
tout en affichant ces "HTML Entities" (&gt; &lt; &amp; &quot; ...)
en html c.à.d > < & "

Pierre.


-----
échangez opinions et commentaires dans les forums de discussion.
http://www.usenetgratuit.com/

Avatar
YD

j'ai un petit problème lorsque je rempli le champ textarea
avec une fonction en javascript

les &gt; ne sont pas affichés: >
les &lt; ne sont pas affichés: <
et les &amp; ne sont pas affichés: &


Logique non ? Le contenu d'un textarea est du texte brut pas
du HTML. C'est par commodité (et parce qu'il n'y a sans doute
pas moyen de faire autrement) que les entités sont acceptées
pour positionner la valeur initiale d'un textarea, mais ces
entités sont remplacées dans la chaîne value par les caractères
correspondants.

Si on positionne le innerHTML, on devrait utiliser les entités,
si on modifie la value on utilise le caractère approprié ! Et
cette "règle" est absolument empirique et dépend du navigateur...

Opera considère qu'on peut changer la value mais pas le innerHTML,
et modifier value ne met pas à jour innerHTML.

IE met à jour les deux valeurs, value sans entités et innerHTML
avec des entités.

Quant à Fx, les deux ont la même valeur, sans entités mais avec
des substitutions pour les caractères internationaux ou peut-être
juste non ascii, du type xnn (nn digits hexa). Et comme avec Opera
innerHTML semble en lecture seule !

Donc ne pas utiiser les entités dans le javascript pour modifier
des textareas.

--
Y.D.