2009-08-03 22 views
1

我有一个小问题让我生气。我有以下示例代码:IE HTML转义

<!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> 

这个例子在Firefox 3.5的伟大工程,和我能看到,在输入框中输入文本中间的撇号。但是,IE 7逐字显示为:ap &'cef。

我已经不同地尝试了不同的逃跑盼望看到撇号,例如\ x27或\'没有任何成功。有没有聪明的人知道如何在IE中做到这一点?

我意识到我可以使用DOM方法来创建节点,但是我有太多的代码来重构它。

谢谢!

回答

4

&'是一个XML功能。它在HTML 4.x中不被允许,并且不受Internet Explorer支持。 Firefox支持它作为其标签汤分析器的一部分,以应对被用作text/html的XHTML。

使用&#39;代替。请参阅XHTML 1.0 Appendix C

+0

就像一个魅力。我应该回到学校学习我的HTML代码。 – 2009-08-03 11:05:37

0

的document.getElementById( “测试”)。innerHTML的= “< INPUT TYPE = \” 文本\ “VALUE = \ ”ab'cef \“ >”

+0

感谢这工作。但是,用双引号不起作用! – 2009-08-03 11:04:48