On aminutewithbrendan,brendan eich发表评论暗示将脚本作为
<script type='text/javascript'></script>
不正确,因为"text/javascript"
不是有效的MIME类型,并且他声明"application/javascript"
是有效的MIME类型。
我只关心将 HTML5作为doctype 。
<script>
的MIME类型在哪里?"text/javascript"
和"application/javascript"
的浏览器支持是什么?type
吗?来自布兰登的文字报价:(1:48)
...或脚本类型等于application / javascript或application / ecmascript,这些是官方的MIME类型,或者是HTML4中的任何一种类型的文本/ javascript ......
相关:
相关资源的结合并没有真正回答所有三个问题。
答案 0 :(得分:31)
html5 W3C规范中定义的
<script>
的MIME类型在哪里?
无处,它有一个list(包括一些实验性和弃用的),但声明您可以使用任何您喜欢的MIME类型。 MIME types are defined by IANA和text/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
属性。