2009-08-03 6 views
1

J'ai un petit problème qui me rend fou. J'ai le code exemple suivant:IE HTML S'échapper

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
    <script> 
     function Test() { 
      document.getElementById("test").innerHTML = "<input type='text' value='ab&apos;cef'>" 
     } 
    </script> 
    <body> 
     <div id="test"></div> 
    </body> 
    <script> 
     Test(); 
    </script> 
</html> 

Cet exemple fonctionne très bien dans FireFox 3.5, et je peux voir une apostrophe au milieu du texte dans la zone d'entrée. Cependant, IE 7 l'affiche textuellement comme suit: ap & apos; cef.

J'ai essayé diversement d'échapper différents dans le vain espoir de voir l'apostrophe, par exemple \ x27 ou \ 'sans aucun succès. Est-ce qu'une personne intelligente sait comment le faire dans IE? Je réalise que je pourrais utiliser des méthodes DOM pour créer des nœuds, mais il y a trop de code pour que je puisse tout refactoriser.

Merci!

Répondre

4

& apos; est une fonctionnalité XML. Il n'est pas autorisé dans HTML 4.x et n'est pas supporté par Internet Explorer. Firefox le prend en charge dans le cadre de son analyseur de soupe de balise pour faire face à XHTML étant servi comme texte/html.

Utiliser & # 39; à la place. Voir aussi XHTML 1.0 Appendix C.

+0

fonctionne comme un charme. Je devrais retourner à l'école et apprendre mes codes HTML. –

0

document.getElementById ("test"). InnerHTML = "< input type = \" text \ "value = \ "\" ab'cef >"

+0

Merci cela fonctionne. Mais, ne fonctionne pas avec des guillemets doubles! –