2010-11-16 25 views
105

我见过两个这样的:<script>标记是否需要'type'属性?

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script> 

这:

<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script> 

是否type属性以任何方式有关系吗?

+3

我从来没有见过一个剧本,不是因为缺少类型属性的执行:

我在GitHub上创建了这个小页面进行测试。我猜这是最准确的问题,但我很想看看提供了什么答案。 – clifgriffin 2010-11-16 14:53:56

回答

102

对于HTML 4.x的,所述type属性是需要。 (W3):

此属性指定元素内容的脚本语言并覆盖默认的脚本语言。脚本语言被指定为内容类型(例如“text/javascript”)。作者必须为此属性提供值。此属性没有默认值。

对于HTML 5,它是可选的。如果未指定,则默认为text/javascript。 (W3):

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

+5

另外,如果您使用内部在HTML4中的事件脚本(如'onload','onclick','onmouseover'属性等),您必须定义 ''或配置你的服务器在HTTP头文件中发送'Content-Script-Type:text/javascript'。 – Tometzky 2014-06-05 12:22:57

2
+4

无论浏览器目前采用哪种浏览器,您最好遵循该标准,以实现更好的互操作性和前向兼容性。 – EricLaw 2010-11-16 14:54:52

+22

但时间不长:http://www.w3.org/TR/html5/scripting-1.html#script:*“type属性给出了脚本的语言或数据的格式,如果属性是目前,它的值必须是一个有效的MIME类型,不能指定charset参数,如果该属性不存在,默认值是“text/javascript”。“*请注意,**我会**继续使用它,无论如何 – 2010-11-16 14:56:24

+6

尽管W3C说什么,在现实世界中,并不是必需的 – 2012-05-17 21:44:32

90

在HTML5中,你不需要type属性,但在HTML < = 4,(X)HTML应该宣布

+0

所有浏览器是否都能正确支持'

5

不,标签中不需要'type'属性。除非你想让你的代码验证。

我们在工作中已经忽略了它多年,这从来都不是问题。我们对多种设备,浏览器等进行了大量测试,其中包括各种HTML4 & XHTML文档类型。 http://kenshub.github.io/script-type.html

相关问题