script
要素にid
属性を与えることで問題を簡単に解決できるシナリオに出会いました。ただし、 w3schools および quirksmode のscript
要素について読んだ後は、予期しない結果が生じる可能性があるようです。
Chrome、Safari、FF3 up、IE 7 up?
現在のすべてのブラウザで問題ありません。
<script id>
が間違っていた唯一のブラウザはNetscape 4でしたが、これはずっと前に気にしなくなりました。
そのquirksmodeページは、language
属性、スクリプト<!--
の非表示、およびapplication/x-javascript
の使用により、古くなっているようです。 <script>
内の<body>
を避ける(および代わりに<head>
に入れる)ことに関するアドバイスは、今日の推奨される慣行と矛盾しています。
<script>
属性の互換性の問題について話している場合:defer
はどこでも動作しないため、それに依存しないでください。 charset
はどこでも機能しません。また、提供されるスクリプトのContent-Typeのcharsetパラメーターも機能しないため、スクリプトの文字セットはページに一致する必要があります。 type
は常にtext/javascript
である必要があり、RFC 4329を書いた人たちが使用してほしい非稼働中の代替物の1つではありません。
まだNetscape 4をサポートしなければならない場合、多くのトラブルが発生します。そして、開発者の他の世界の哀れみと哀dolの意を表します。
簡単に言えば、私はそれを心配しません。
私は長い時間が経ったことを知っていますが、 スクリプトタグのW3スクールの定義 を見ると、ある時点で
タグは HTMLのグローバル属性 もサポートしています。
そしてそれらの属性の中で、ta-da、あなたの素敵なIDを見つけるでしょう。
たくさんのタグについても同じことが言えます。これは、ニースのトリックを帽子から引き出す際に柔軟性を与えてくれます。
id
属性をscript
要素に追加しても、ブラウザに問題はないと思います。
JavaScriptを介して追加のJavaScriptを読み込むいくつかのサイトでは、class
属性を追加して、それらの参照を容易にしました。バリデーターは文句を言いませんでした。