84

セクションは XHTML5 で使用できると確信して<![CDATA[...]]>いますが、HTML5 ではどうでしょうか。

4

5 に答える 5

59

このCDATA構造は実際には HTML 用ではなく、XML 用です。

scriptエスケープする必要がなくなるため、タグ<内の XHTML で使用されることが>あり&ます。scriptただし、HTML のタグは既に CDATA セクションのように解析されているため、HTML では不要です。

編集:これは、2002 年からの本当にカビの生えた古いワームの缶を開くところtext/htmlですapplication/xhtml+xml

于 2010-07-21T18:48:33.943 に答える
25

にリンクされている同じページ@pst から:

scriptおよびstyleタグ要素固有の解析 、XHTML-HTML 互換性に関するガイダンス: 「エスケープを使用した次のコードにより、スクリプトとスタイル要素が、古いブラウザーを含む XHTML と HTML の両方で機能することが保証されます。」

最大の下位互換性:

<script type="text/javascript"><!--//--><![CDATA[//><!--
    ...
//--><!]]></script>

よりシンプルなバージョンで、「かなり古いブラウザ」とは互換性がありません:

<script>//<![CDATA[
   ...
//]]></script>

そのCDATAため、HTML5 で使用でき、公式の XHTML-HTML 互換性ガイダンス で推奨されています。

これは、開発中は厳密な XML として提供されるポリグロットHTML/XML/XHTML ページに役立ちますが、プロダクション モードでは HTML5 として提供され、ブラウザー間の互換性が向上します。多言語ページには利点があります。XML/XHTML5 をデバッグする方がはるかに簡単なので、私はこれを自分で使用しました。たとえば、Google Chrome は無効な XML/XHTML5 (文字のエスケープなどを含む) に対してエラーをスローしますが、HTML5 として提供された同じページは「正常に機能する」または「おそらく機能する」ことになります。application/xmltext/html

于 2012-07-13T00:25:28.930 に答える
17

仕様はこの問題を解決しているようです。script タグと style タグは「生のテキスト要素」と見なされます。CDATA は必要ないか、許可されていません。CDATA は「外部コンテンツ」、つまり MathML と SVG でのみ使用されます。var x = '</script>'script タグに入れることができるものにはいくつかの制限があることに注意してください。基本的には、タグを閉じて、彼の回答に記載されている pst のように分割する必要があるため、そこにそのようなものを入れることはできません。http://www.w3.org/TR/html5/syntax.html#cdata-rcdata-restrictions

于 2010-12-19T20:05:35.297 に答える
5

おそらく参照してください: http://wiki.whatwg.org/wiki/HTML_vs._XHTML

<![CDATA[...]]> は偽のコメントです。

HTML では、はすでに保護されています。これが、ブラウザーの混乱を避けるために、 の<script>ように記述しなければならない場合がある理由です。a = "<" + "/script>"このコードは、HTML の CDATA の外部で有効であることに注意してください。

于 2010-07-21T18:47:01.313 に答える