是“<script type =”text / javascript“>”不正确?</script>

时间:2011-07-24 12:36:46

标签: javascript html html5 mime-types

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类型,或者是HTML4中的任何一种类型的文本/ javascript ......

相关:

相关资源的结合并没有真正回答所有三个问题。

2 个答案:

答案 0 :(得分:31)

  

html5 W3C规范中定义的<script>的MIME类型在哪里?

无处,它有一个list(包括一些实验性和弃用的),但声明您可以使用任何您喜欢的MIME类型。 MIME types are defined by IANAtext/javascript正式标记为已过时,支持application/javascript

  

什么是“text / javascript”和“application / javascript”等浏览器支持?

不够好。仍然有很多浏览器无法识别后者。 (但是,这只是type属性的一个问题,您可以正确设置HTTP Content-Type标头而不必担心)。

  

应该使用哪种?或者我们应该根本不设置类型吗?

由于您只关心HTML 5,所以只需完全省略type属性。它是可选的,默认语言是JavaScript。

答案 1 :(得分:3)

我认为布兰登(至少)部分错误。最新编辑的HTML5草案(2011年8月15日)说:

  

type属性提供脚本的语言或格式   数据。如果该属性存在,则其值必须是有效的MIME   类型。不得指定charset参数。默认,哪个   如果属性不存在,则使用“text / javascript”。

因此,如果您不包含type属性,则默认值为“text / javascript”。如果这是默认值,则它必须是有效的MIME类型。

其他有效的MIME类型是什么?该规范似乎没有给出示例列表,但它确实指定了所需的格式:

  

如果字符串与媒体类型规则匹配,则该字符串是有效的MIME类型   在RFC 2616的第3.7节“媒体类型”中定义

你可以在这里享受阅读的乐趣:

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

编辑:Quentin是对的:对于HTML5,假设您使用的是Javascript,则无需包含type属性。