2012-03-25 4 views

答えて

3

現代のブラウザのパーサ(HTML5の構文解析アルゴリズムを使用すること、すなわち、それらは)このように動作します。次にテキストまたは新しいタグが期待され、<!と表示されている場合は、次の数文字を確認して、--またはDOCTYPEか、埋め込みSVGまたはMathMLを処理している場合は[CDATA[かどうかを確認します。 <!- fooの場合のように、これらの試合のどれもが、その後、パーサーは、次のアップ>に、以下のすべての文字は、読み、そして置くことにコメントに変換されbogus comment stateに入っていない、場合

http://dev.w3.org/html5/spec/tokenization.html#markup-declaration-open-stateを参照してください) DOMに挿入します。

したがって、<!-と表示される動作は、コメント開始のように機能します。このような動作は、マークアップが壊れた場合の「修復」動作であり、頼りにならないことが賢明です。あなたは、このようなマークアップはここにDOMを形成してどのように見ることができます

Live DOM Viewer

はまた、これは@Amberが言うに異なっていることに注意してください。意味のある意味ではタグとして扱われず、確かに無視されません。

+0

次の ' - >'(コメントの終わりの文字)ではなく、次の '>'(タグの終了文字)まで解析されるという意味で "タグとして扱われます" 。表示されたページのテキストに影響を及ぼすのではなく、コメントとして使用されるという意味で「無視する」。 – Amber

5

実際には動作していません。それは実際のタグとして解釈してから、そのタグを無効なものとして送り出します。

<!- foo bar --> 

明らかに標準的なHTMLタグでないタグ、<!-foo bar-->として扱われ、従って無視されます。

これを試してみてください、あなたはそれが本当にコメントとして働いていないわかります

<!- >foo bar--> 
+0

これは別の質問につながります: コンパイラ/インタプリタでコメントを読むことができない場合は、 私はそれが私の例のように読み込まれないことをテストしますか? –

+3

@pop [html validator](http://validator.w3.org/)を使用してください。 – nobody

関連する問題