[DOM] IE supprime les "\n " avec innerHTML
bonjour,
J'ai un tableau qui contient des données avec (parfois) des retour à la ligne
Pour ne pas que les lignes de celui ci s'agrandissent, j'ai formaté le cellules avec le Css suivant:
Code:
1 2 3 4
| td {
overflow:hidden;
white-space:nowrap;
} |
Pour que l'utilisateur puisse voir le contenu complet (avec les retours à la lignes), j'ai un div avec le Css suivant :
Code:
1 2 3
| #IdCommentaire{
white-space:pre; /* indique de prendre le formatage tel quel avec retours à la ligne tabulations etc)*/
} |
et une fonction qui affiche dans ce div le contenu de la cellule sur mouseover via la fonction
Code:
1 2 3 4 5 6 7 8 9 10
| function show_comment(event) {
var elt_div = $('IdCommentaire');
// on récupère qui est à l'origine du show comment
var elt_td = Event.element(event)
if (elt_div) {
elt_div.innerHTML=elt_td.innerHTML
//elt_div.innerHTML=elt_td.innerHTML.replace('\n','|');
//elt_div.innerHTML=elt_td.firstChild.nodeValue.replace('\n','|');
}
} |
tout ceci marche à merveille sur firefox, mais sur IE aucun retour a la ligne.
Après vérifications le css "white-space:pre;" n'est valable sous IE qu'en mode csscompat (et pas quirks), ce que j'ai pu vérifier sur un cas plus simple.
Mais le pb ne vient pas de là (j'ai essayé aussi de mettre le contenu du div dans une balise <PRE></PRE> sans plus de succès.
En fait, il semble que dès qu'on fait une "copie" d'un élément, IE supprime automatiquement les retours à la ligne (ce que j'ai pu vérifier avec les 2 lignes en commentaires (ou je transforme le '\n' en '|' )--> sous Firefox je vois les | sous IE ...aucun '|' ni '\n' :(
Au cas où ce serait le innerHTML qui poserait probleme J'ai tenté aussi un
Code:
1 2 3
| cloneNode = elt_td.cloneNode(true);
elt_div.innerHTML="";
elt_div.appendChild(cloneNode); |
et
Code:
elt_div.innerHTML=elt_td.firstChild.nodeValue;
Sans plus de succès
Est ce que quelqu'un à une idée, soit de ce qui ne va pas dans mon code soit de comment contourner le pb (en dehors de mettre des <BR> lors de la génération du contenu de la cellule car je ne veux pas que les retours à la lignes soit présent dans le tableau initial. Je ne peux/veux pas non plus gérer 2 versions de chaque cellule une avec <BR> et une sans <BR> car j'ai le "pb" sur toutes les cellules d'un tableau qui peut être grand
Merci pour toute aide...