scriptタグは空要素っぽく閉じると,FirefoxやIEで読んでもらえない
Posted: Updated:
うっかり省略しちゃったら
<!-- NG -->
<script type="text/javascript" src="/dogfood.js" charset="UTF-8" />
<!-- OK -->
<script type="text/javascript" src="/dogfood.js" charset="UTF-8"></script>
SafariやChromeでは正常に読み込まれますが,Firefox3.6とIE8では読み込まれませんでした.
Re: [WSG] Firefox 3 and script tag 'problems'によれば,HTML4.01のドキュメントでは,開始タグと終了タグは共に必須とされ,XHTML 1.0のドキュメントでは,コンテントモデルが空でない要素を閉じるのに使ってはならない,とあります.(たとえ中身が空であっても)
4.3 Scripting — HTML5を見ると,src属性の指定があれば空要素でもいいよ的な記述はありますが,この記法自体がそもそもXML構文のはずですし,HTML5でもscript要素をXHTML的な空要素の閉じ記法で扱わないほうがよさそう.(HTML5で<br />みたいなのはあくまで後方互換の必要悪,って認識)
とりま,script要素は素直に書くのが一番ってことで.
参考サイト
- Symmetri Developer Blog :: Can’t use empty tag shorthand in HTML5 :: September :: 2010
- Re: [WSG] Firefox 3 and script tag 'problems'
- Scripts in HTML documents
- XML空要素タグのHTML的解釈 - 徒書
- 魔女の巣: Firefox3:scriptタグは空要素でも閉じタグが必要だってさ
- script 要素 - スクリプティング - HTML要素 - HTML5 タグリファレンス - HTML5.JP