web-dev-qa-db-ja.com

「<script type = 'text / javascript'>」は間違っていますか?

On aminutewithbrendan の場合、brendan eichは、そのスクリプトを

<script type='text/javascript'></script>

"text/javascript"は有効なMIMEタイプではなく、"application/javascript"は有効なMIMEタイプであると述べているため、不正解です。

私はHTML5をdoctypeとして提供することだけを気にしています。

  • Html5 W3C仕様で定義されている<script>のMIMEタイプはどこにありますか?
  • "text/javascript""application/javascript"のブラウザサポートはどのようなものですか?
  • どちらを使用する必要がありますか?または、typeをまったく設定しないでください。

ブレンダンからのリテラル引用:(1:48)

...またはスクリプトタイプがapplication/javascriptまたはapplication/ecmascriptと等しい場合、これらは公式のMIMEタイプ、またはtext/javascriptのようなHTML4から作成されたタイプのいずれかです。

関連:

関連するリソースの結合は、3つの質問すべてに実際に回答するわけではありません。

28
Raynos

Html5 W3C仕様で定義されている<script>のMIMEタイプはどこにありますか?

どこにも list (いくつかの実験的および非推奨のものを含む)はありませんが、好きなMIMEタイプを使用できると述べています。 MIMEタイプはIANAによって定義されます およびtext/javascriptは、正式にapplication/javascriptを支持してobsoleteとしてマークされます

「text/javascript」や「application/javascript」に対するブラウザのサポートはどのようなものですか?

十分じゃない。後者を認識しないブラウザはまだたくさんあります。 (ただし、これはtype属性の問題であり、心配することなくHTTP Content-Typeヘッダーを正しく設定できます)。

どちらを使用する必要がありますか?または、タイプをまったく設定しないでください。

HTML 5のみに関心があるため、type属性を完全に省略します。これはオプションであり、デフォルトの言語はJavaScriptです。

31
Quentin

ブランドンは(少なくとも)部分的に間違っていると思います。 HTML5の最新エディターのドラフト(2011年8月15日)はこう述べています。

Type属性は、スクリプトの言語またはデータの形式を指定します。属性が存在する場合、その値は有効なMIMEタイプである必要があります。 charsetパラメータを指定してはなりません。属性がない場合に使用されるデフォルトは「text/javascript」です。

したがって、type属性を含めない場合、デフォルト値は「text/javascript」です。これがデフォルト値の場合、有効なMIMEタイプである必要があります。

他の有効なMIMEタイプは何ですか?仕様にはリストの例は記載されていないようですが、次のように、必要な形式を指定しています。

文字列は、RFC 2616のセクション3.7「メディアタイプ」で定義されているメディアタイプルールと一致する場合、有効なMIMEタイプです。

あなたはここで読む喜びを持つことができます:

http://www.ietf.org/rfc/rfc2616.txt

編集:Quentinは正しいです。HTML5の場合、JavaScriptを使用している場合、type属性を含める必要はありません。

3
james.garriss