2010-11-22 7 views
3

非常に奇妙なことに、誰かが私を助けることができます。ここでは簡単なテスト機能である:innerHTML画像タグから閉じるスラッシュを削除する

function test_function(){ 
    code = '<img src="http://www.myimage.com/img.jpg" alt="image" />'; 
    alert(code); 
    document.getElementById('test').innerHTML = code; 
    alert(document.getElementById('test').innerHTML); 
} 

上記のコードを実行する最初の警告で/>が表示されますが、2番目の警告は、それだけで>示していません。したがって、.innerHTMLに適用すると、スラッシュが取り除かれているように見えます。どのように起こることからこれを停止するための任意のアイデア?検証のためにフォワードスラッシュが必要です。

+1

どのdoctypeを使用しますか? – Dror

+0

これはどのブラウザで発生していますか? – JAL

+0

ブラウザがスラッシュを削除した場合、そのdoctypeでは必須ではない可能性があります。 –

答えて

6

2番目の警告は、ブラウザが画像要素の内部表現として使用する内容を示しています。バリデーションにはスラッシュは必要ありません。バリデーションは常にページのソースに関するものであり、バリデータはJavaScriptにDOMを動的に追加するJavaScriptを実行しません。

実際、ほとんどのブラウザはXHTMLを内部的にHTMLと同じように扱います。文書のXML表現ではありません。 MIMEタイプがapplication/xhtml+xmlのXHTML文書を送信した場合にのみ、ブラウザの一部では、XMLパーサを使用してページがレンダリングされます。

Ian Hicksonのarticleも参照してください。

+0

innerHTMLのようなものを使用してページソースをajaxページエディタに保存している場合を除き、それはすべてうまくできています。 – David

+0

そうですね、私はそのMIMEを使用すると、いくつかのブラウザで動作します。私は何か確実に火を必要とし、そのMIMEを使用してオンライン形式で何かを見つけることができません。 – David

+0

@David - ここでHTML 5に切り替えることはできませんか? [self-closing tags](http://dev.w3.org/html5/spec/Overview.html#elements-0)を使用しないと、はるかに寛容です。 –

関連する問題