www.w3.org/TR/xhtml1/#h-4.8 によると、CDATA セクションは次のように定義できます: [no //]
うん。XHTML では、それが可能です。application/xhtml+xml
IE 以外の Web ブラウザーにサービスを提供するときのように、XML パーサーによって読み取られる適切な XHTML 。
しかし、実際には としてサービスを提供している可能性があります。text/html
これは、そのセクションで言及されているように、ブラウザが「XML プロセッサ」ではないことを意味します。これは従来の HTML4 パーサーであるため、付録 C のガイドラインを順守し、HTML4 で機能しない XML 機能を使用しないようにする必要があります。
特に、またはブロック内の文字列<![CDATA[
とは、HTML4 パーサーにとって特別なものではありません。HTML4 では、これらの 2 つの要素は「CDATA 要素」であり、マークアップが適用されないためです (要素自体を終了する ETAGO シーケンスを除く)。したがって、HTML4 パーサーはこれらの文字列を CSS または JavaScript エンジンに直接送信します。]]>
<script>
<style>
</
は有効な JS ではないため<![CDATA[
、JavaScript 構文エラーが発生します。(他の回答はここでは間違っています。非常に古いブラウザだけでなく、すべての HTML4 ブラウザで、スクリプト内のコメントされていない CDATA セクションでエラーが発生します。)
//
またはコメント マークアップを使用して/*
、JavaScript または CSS エンジンからコンテンツを非表示にします。そう:
<script type="text/javascript">//<![CDATA[
alert('a&b');
//]]></script>
(先頭の//
; これは W3Schools のサンプル コードでは省略されていることに注意してください。これにより、そのサンプル コードがまったく機能しなくなります。失敗します。W3Schools を信用しないでください。W3Schools は W3C とは何の関係もありません。その素材はしばしばゴミです。)
これは、HTML パーサーによって次のように読み取られます。
script
次の ETAGO まで CDATA コンテンツを確立するタグを開く
- 文章
//<![CDATA[\n alert('a&b');\n//]]>
- ETAGOとクローズタグ
script
- -> JavaScript エンジンに送信される結果のコンテンツ:
//<![CDATA[\nalert('a&b');\n//]]>
ただし、XML パーサーでは次のようになります。
- オープンタグ
script
(特別な解析の影響なし)
- テキストの内容
//
]]>
次のシーケンスまで CDATA コンテンツを確立する CDATA セクションを開く
- 文章
\n alert('a&b');\n//
- CDATA セクションを閉じる
- タグを閉じる
script
- -> JavaScript エンジンに送信される結果のコンテンツ:
//\nalert('a&b');\n//
構文解析プロセスはかなり異なりますが、JS エンジンは、 のおかげで//
唯一の違いはコメントであるため、いずれの場合も同じ効果的なコードになります。
これは古い学校とは非常に異なるケースであることに注意してください。
<script type="text/javascript"><!--
alert('a&b');
//--></script>
<script>
これは、スクリプト/スタイルのコンテンツを非表示にして、<style>
タグを認識しないブラウザーでページに書き込まれないようにすることでした。これは JavaScript/CSS エラーを生成しません。これは、ハッキングが別のレベルに置かれたためです。これは、何もしないように定義された CSS および JavaScript 言語自体の構文上の機能であり、このハックが機能することを可能にします。<!--
これらのブラウザは古い歴史です。今日、この手法を絶対に使用しないでください。特に XHTML では、XML パーサーがスクリプト ブロック全体を実行可能コードではなく XML コメントに変換して、あなたの言葉を解釈するためです。
特殊文字をエスケープせずに、スクリプトまたは CSS を xHTML にインライン化したい。
これを避けると、あなたはずっと幸せになります。
との文字が本当に必要ですか? いいえ、ほとんどありません。でそれらが本当に必要ですか? ええと...時々、ええ、そしてその場合、コメント付きのCDATAセクションは受け入れられます。<
&
<style>
<script>
しかし正直なところ、XHTML 互換性ガイドライン C.4 は XHTML1 と同様に HTML4 にも適用できます。