2

Rails3がXHTMLDoctypesでどのように機能するかについて簡単な質問があります。Rails 3はajax呼び出し(およびdelete呼び出しなどの通常の呼び出し)にUJSを使用し、HTML5データ属性を使用して使用するため、XHTMLはデータ属性をサポートしていないため、マークアップは自動的に無効になりますか?

4

1 に答える 1

6

data-*属性は、HTML5のエンコーディングの1つであるXHTML5で有効です。これらはXHTML1.0では有効ではありませんが、おそらく大きな問題ではありません。

ほとんどの場合、コンテンツを実際のブラウザーに提供している場合、コンテンツはXHTMLではなくHTMLとして解析されます。コンテンツをとして提供する場合text/html、ブラウザはコンテンツをHTMLとして解析します。として提供する場合application/xhtml+xml、IE 6はHTMLではなく生のXMLとしてレンダリングします。他のブラウザーでは、小さなミスを1つ行うと、解析を停止し、醜いエラーメッセージを表示します。残りのコンテンツを解析します。として提供する場合text/html、ブラウザはそれをとして解析するtext/htmlため、有効なXHTMLであるかどうかは関係ありません。

XHTML 1.0が無効であっても、整形式であり、Webブラウザーはユーザーエージェントを検証していないため、コンテンツが有効かどうかは重要ではありません。属性の要点はdata-*、ページ上のスクリプトにプライベートデータを提供することです。属性によってドキュメントの整形が妨げられることはないためdata-*、ブラウザはドキュメントを適切に解析します。したがって、データが有効なXHTMLであるかどうかに関係なく、スクリプトはデータにアクセスできます。

結果は次のとおりです。これらの属性はHTML5およびXHTML5で有効です。これらはXHTML1.0では有効ではありませんが、これらの属性はすべての主要なブラウザーで機能し、ページ上のスクリプトにプライベートデータを提供するため、実際には問題ではありません。

于 2010-09-12T03:07:38.690 に答える