なぜ、自動開閉式のスクリプトエレメントは機能しないのでしょうか?
ブラウザが正しく認識できない理由は何ですか?
<script src="foobar.js" /> <!-- self-closing script element -->
だけが認識されます。
<script src="foobar.js"></script>
これはXHTMLサポートの概念を崩すものでしょうか?
注)この記述は、少なくともすべてのIE(6-8 beta 2)では正しいです。
1280
3
XHTML 1の仕様では
С.3. Element Minimization and Empty Element Content
XHTML DTDでは、script要素を次のように指定しています。
Internet Explorer 8以前のバージョンでは、XHTMLの解析をサポートしていません。XML宣言やXHTMLのdoctypeを使用しても、古いIEはドキュメントをプレーンなHTMLとして解析します。そして、プレーンなHTMLでは、self-closing構文はサポートされていません。トレイリングスラッシュは無視されますので、明示的に閉じるタグを使用する必要があります。
IE 9以降](http://blogs.msdn.com/b/ie/archive/2010/11/01/xhtml-in-ie9.aspx)のようにXHTMLの解析をサポートしているブラウザでも、ドキュメントをXMLコンテンツタイプで提供しない限り、ドキュメントをHTMLとして解析します。しかし、その場合、古いIEはその文書を全く表示しません。
XMLやXHTMLとは異なり、HTMLは自己閉鎖型の構文を知りません。 XHTMLをHTMLとして解釈するブラウザは、
<script defer>` が `<script defer="defer">` として扱われるのと同様に、`<script />` は `<script /="/">` として扱われます。/
文字がタグの自閉性を示すことを知りません。代わりに空の属性のように解釈し、パーサーはタグが「開いている」と考えます。