script type='text/javascript'>"不正确的

is "<script type='text/javascript'>" incorrect?

本文关键字:quot 不正确 javascript text type script      更新时间:2023-09-26

在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吗?

字面引用自brendan:(1:48)

…或者脚本类型等于application/javascript或application/ecmascript,这些是官方的MIME类型,或者是HTML4中的一个,如text/javascript…

相关:

  • 脚本带有或不带有
  • 类型
  • JavaScript MIME类型
  • 为什么要设置MIME类型
  • RF4329
  • JavaScript MIME类型

相关资源的联合并不能真正回答这三个问题。

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

没有,它有一个列表(其中包括一些实验性的和已弃用的),但声明您可以使用任何您喜欢的MIME类型。MIME类型由IANA定义,text/javascript被正式标记为过时的以支持application/javascript

浏览器对"text/javascript"answers"application/javascript"的支持情况如何?

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

应该使用哪个?或者我们干脆不设置字体?

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

我认为Brandon(至少)有一部分是错的。最新的HTML5编辑草案(2011年8月15日)说:

type属性给出脚本的语言或文本的格式数据。如果存在该属性,则其值必须是有效的MIME类型。不能指定字符集参数。默认值是如果属性不存在,则为"text/javascript"。

所以如果你不包含type属性,默认值是"text/javascript"。如果这是默认值,它必须是有效的MIME类型。

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

如果一个字符串匹配媒体类型规则,它就是一个有效的MIME类型

RFC 2616

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

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

编辑:Quentin是对的:对于HTML5,没有必要包括一个type属性,假设你正在使用Javascript。