2009-08-03 26 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 & apos; cef。

私はアポストロフィを見ることの無駄を避けるために、さまざまな試みをしました。例えば、\ x27や\ 'は何の成功もありません。巧妙な人はIEでそれをする方法を知っていますか?

DOMメソッドを使用してノードを作成することができましたが、すべてをリファクタリングするコードが多すぎます。

ありがとうございます!

答えて

4

&apos; XML機能です。 HTML 4.xでは使用できず、Internet Explorerではサポートされていません。 FirefoxはXHTMLがtext/htmlとして提供されることに対応するため、タグスープパーサーの一部としてそれをサポートしています。

&#39;代わりに

XHTML 1.0 Appendix Cも参照してください。

+0

魔法のように動作します。私は学校に戻り、自分のHTMLコードを学ぶべきです。 –

0

のdocument.getElementById( "テスト")。innerHTMLの= "<入力タイプ= \" テキスト\ "値= \ "ab'cef \" >"

+0

ありがとうございます。しかし、二重引用符では動作しません! –