Bastien Posté 4 Avril 2007 Posté 4 Avril 2007 (modifié) Bonjour à tous! J'ai un petit problème que je n'arrive pas à résoudre. Le voici: J'ai une fonction en Javascript qui fait un replaceData sur un div. document.getElementById(divId).firstChild.replaceData(0, longueurCible, texte); La variable texte contient des informations ainsi que des éléments XHTML (par exemple des <br /><span>, etc.). Tout s'affiche, mais c'est exactement comme déclaré (c'est-à-dire qu'on voit les éléments (ex: <br /> au lieu d'un saut de ligne)). Quelqu'un pourrait m'aider sur ce coup?!??? merci! Modifié 4 Avril 2007 par Bastien
nicobillou Posté 4 Avril 2007 Posté 4 Avril 2007 (modifié) Heu je n'y connais pas grand chose en XHTML mais le petit espace entre <br et /> serait peut être le problème ???? Testez on ne sait jamais . ( ou peut être un pb de quote ??? ) Modifié 4 Avril 2007 par nicobillou
Bastien Posté 5 Avril 2007 Auteur Posté 5 Avril 2007 (modifié) Rebonjour, Merci pour ta réponse, nicobillou. Les <br /> ont vraiment un espace. Voici un exemple simple: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html><head> <title>Exemple qui ne fonctionne pas!</title> <script type='text/javascript'> <!-- function rempl_text(divId,texte) { var longueurCible; //longueur du texte longueurCible = document.getElementById(divId).firstChild.length; document.getElementById(divId).firstChild.replaceData(0, longueurCible, texte); } //--> </script> <style type='text/css'> html, body{height: 100%; font: 12px arial; background: #8298A8} #menu {position: absolute; left: 0; width: 200px; height: 100%; padding: 10px; background: #fff} #contenu {height: 100%; margin: 0 0 0 220px; padding: 10px; background: #eee} </style></head> <body> <div id='menu'> <span onclick="rempl_text('contenu','Le<br />contenu<br />a<br />changé<br />');">cliquez ici</span> </div> <div id='contenu'> Voici le texte qui changera. </div></body></html> Ce code est fonctionnel (même si la fonction ne fonctionne pas comme je le voudrais) Si vous avez des suggestions.... Merci! Modifié 5 Avril 2007 par Bastien
Dudu Posté 5 Avril 2007 Posté 5 Avril 2007 Salut Pas trop le temps de tester, mais as-tu essayé de créer un noeud avec document.createTextNode ? var machin = document.createTextNode("le<br/>contenu<br/>a<br/>changé"); puis d'utiliser ta variable"machin" ensuite. Ou encore en n'utilisant aucun (X)HTML et en ne construisant tes éléments (divs "menu" et "contenu") qu'en JS, c'est-à-dire avec document.createElement, setAttribute, appendChild, etc. Si oui, qu'est ce que ça donne ? À part ça, l'espace dans <br/> est loin d'être obligatoire car c'est soi-disant pour une compatibilité Netscape 4 (qui trébuche sur les slashs de balises uniques si ils se sont pas précédés d'un espace). Déjà que ce navigateur est quasiment mort, en plus il ne sait pas lire l'XHTML envoyé en tant que tel. Et lorsqu'on envoie à un navigateur de l'XHTML avec un type MIME HTML, son moteur de rendu enlève automatiquement les slashs finaux car c'est pour lui une infâme bouillie sans queue ni tête. Donc si on veut vraiment garder une compatibilité NS4, on lui envoie de l'HTML pur... mais on ne se donne pas bonne conscience en mettant des espaces Enfin.. à mon humble avis
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant