Je viens de rencontrer un comportement assez étrange de texte multiligne dans Firefox en utilisant des liaisons knockoutjs. Voici mon violon: http://jsfiddle.net/NznVZ/ .
Nous avons une zone de texte et une portée avec une liaison de valeur / texte à la même valeur observable. Actuellement, Chrome et IE affichent un texte multiligne dans l'élément span, mais Firefox ne le fait pas (il concorde seulement plusieurs lignes en 1).
Quelqu'un peut-il expliquer ce qui est / où est le problème? Peut-être que quelqu'un avait déjà rencontré ce problème et avait une solution?
Merci d'avance
PS Firefox 12, IE 9, Chrome 18
Réglage de l' white-space: pre-wrap
style de white-space: pre-wrap
sur la portée va le faire fonctionner: http://jsfiddle.net/mbest/NznVZ/12/
Voici un peu de fond. IE et Chrome convertiront les nouvelles lignes de la chaîne en éléments HTML dans le code HTML lorsque le texte sera défini à l'aide de innerText
, ce que Knockout utilise. Firefox n'a pas innerText
donc Knockout utilise le textContent
, qui ne fait aucune conversion de la chaîne. (Fait intéressant, Chrome combine Firefox lorsque vous utilisez l' white-space: pre-wrap
style white-space: pre-wrap
.)
C'EST À DIRE:
<span>First line.<br>Second Line.<br> Third line preceded with 5 space characters.</span>
Chrome (sans style espace blanc):
<span>First line.<br>Second Line.<br> Third line preceded with 5 space characters.</span>
Firefox et Chrome (avec style espace blanc):
<span>First line. Second Line. Third line preceded with 5 space characters.</span>
Si vous voulez une solution javascript: http://jsfiddle.net/9KAQX/
Le seul avantage ici est que les caractères "\ n" ne sont pas présents dans la portée.