JavaScriptタグとHTML内でのCDATAの使用は何ですか?
<script type="text/javascript">
// <![CDATA[
// ]]>
</script>
XML文書内のすべてのテキストは、パーサーによって解析されます。
ただし、CDATAセクション内のテキストはパーサーによって無視されます。
CDATA 未解析)文字データ
CDATAという用語は、XMLパーサーによって解析されるべきではないテキストデータについて使用されます。
「<」や「&」などの文字は、XML要素では無効です。
「<」は、パーサーが新しい要素の開始として解釈するため、エラーを生成します。
「&」は、パーサーが文字エンティティの開始として解釈するため、エラーを生成します。
JavaScriptコードなどの一部のテキストには、多くの「<」または「&」文字が含まれています。エラーを回避するために、スクリプトコードをCDATAとして定義できます。
CDATAセクション内のすべては、パーサーによって無視されます。
CDATAセクションは「
<![CDATA[
」で始まり、「]]>
」で終わります
プログラム出力でのCDATAの使用
HTMLパーサーはCDATAの開始マーカーと終了マーカーを認識せず、
<
タグ内の<script>
などのHTMLエンティティ参照も認識しないため、XHTMLドキュメントのCDATAセクションは、ドキュメントをHTMLとしてレンダリングする場合、Webブラウザーによって異なる方法で解析される傾向があります。これにより、Webブラウザーでレンダリングの問題が発生する可能性があり、信頼できないソースからのデータを表示するために使用すると、2種類のパーサーがCDATAセクションの終了位置に同意しないため、クロスサイトスクリプティングの脆弱性が生じる可能性があります。
---(SGMLの簡単なチュートリアル 。
また、 CDATAのウィキペディアエントリ を参照してください。
CDATA
はHTMLではまったく意味がありません。
CDATA
は、通常は#PCDATA-解析された文字データであるタグのコンテンツを設定するXML構成体であり、代わりに#CDATA、つまり解析されていない文字データとして解釈されます。 XHTMLでのみ有効で有効です。
<
および&
の解析を回避するために、script
タグで使用されます。 HTMLでは、script
はすでに#CDATAであるため、HTMLではこれは必要ありません。
http://en.wikipedia.org/wiki/CDATA から:
Webページスクリプトで小なり記号(<)とアンパサンド(&)を使用し、それらをエスケープすることを忘れずにスタイルを小さくできると便利なので、CDATAマーカーを使用するのが一般的ですXHTMLドキュメントのインラインおよび要素のテキスト。ただし、CDATAマーカーを認識しないHTMLパーサーでもドキュメントを解析できるように、このJavaScriptの例のように、CDATAマーカーは通常コメントアウトされています。
<script type="text/javascript">
//<![CDATA[
document.write("<");
//]]>
</script>
移植性の向上を期待して、HTMLとXHTMLの共通サブセットを記述する方法。
HTMLでは、<script>
は、</script>
が現れるまですべてをエスケープする魔法です。
だからあなたは書くことができます:
<script>x = '<br/>';
<br/>
はタグと見なされません。
これが、次のような文字列の理由です。
x = '</scripts>'
次のようにエスケープする必要があります。
x = '</scri' + 'pts>'
参照: document.write()で書き込むときに<script>タグを分割する理由
しかし、XML(したがって、XMLの「サブセット」であるXHTML HTMLとは異なり )には、その魔法がありません。<br/>
はタグと見なされます。
<![CDATA[
はXHTMLの言い方です:
次の
]]>
までタグを解析せず、すべて文字列とみなします
//
が追加され、CDATAがHTMLでも適切に機能するようになりました。
HTMLでは、<![CDATA[
は魔法ではないので、JavaScriptによって実行されます。したがって、//
を使用してコメント化します。
XHTMLは//
も参照しますが、問題のない空のコメント行としてそれを観察します。
//
それは言った:
<!DOCTYPE html>
vs <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
からHTMLまたはXHTMLであるかどうかを認識する必要がありますscript
構文でdoctypeを調整できますしかし、それはインターネットの黄金律に違反しています。
サードパーティを信用しないでください。
CDATAはObsoleteです。
CDATAセクションはHTML内で使用しないでください。 XMLでのみ機能します。
したがって、HTML 5では使用しないでください。
https://developer.mozilla.org/en-US/docs/Web/API/CDATASection#Specifications
CDATAは、ドキュメントの文字セットからの一連の文字であり、文字エンティティを含めることができます。ユーザーエージェントは、属性値を次のように解釈する必要があります。文字エンティティを文字に置き換え、
改行を無視し、
各キャリッジリターンまたはタブを単一のスペースに置き換えます。