<script>标签是否需要'type'属性?</script>

时间:2010-11-16 14:52:48

标签: html

我见过这两个:

<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属性是否有任何影响?

8 个答案:

答案 0 :(得分:121)

对于 HTML 4.x type属性必需。 (W3):

  

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

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

  

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

答案 1 :(得分:94)

HTML5中的

您不需要type属性,但在HTML&lt; = 4和(X)HTML中应该声明

答案 2 :(得分:6)

出于测试目的,它将无效,但W3C要求它正确验证。 HTML 5草案并没有要求它作为一项要求,但在W3C仍然是草案形式,他们不推荐它。

任何重要的浏览器都会解析它。

答案 3 :(得分:6)

不,标签中不需要'type'属性。除非您希望代码验证。

我们多年来一直在工作中省略它,它从来都不是问题。我们在多个设备,浏览器等方面进行了大量测试。这包括各种HTML4&amp; XHTML doctypes。

我创建了这个小页面,用于在github上进行测试: http://kenshub.github.io/script-type.html

答案 4 :(得分:5)

答案 5 :(得分:4)

HTML 5.2标准(2017年末)说你应该省略type属性。

  

type属性允许自定义表示的脚本类型:

     

省略属性或将其设置为JavaScript MIME类型意味着该脚本是经典脚本,需要根据JavaScript脚本顶级生产进行解释。经典脚本受charset,async和defer属性的影响。 作者应省略属性,而不是冗余地提供JavaScript MIME类型。

(强调我的。)

来源:https://www.w3.org/TR/html52/semantics-scripting.html#element-attrdef-script-type

答案 6 :(得分:1)

type属性在HTML4.01中是必需的,但在HTML5中是可选的。 该类型显示要解析的类型。

来源:W3SchoolsMDN

  

注意:如果type属性是音频,HTML,视频或JavaScript以外的任何MIME类型,则将不会执行代码。

答案 7 :(得分:0)

尽管类型属性不是必需的,但在大多数情况下很有用。 IE可以正常工作,但是chrome和FF有时会引起问题,尤其是在脚本较大的情况下。 我在plotly js库上工作时遇到type属性问题。如果没有type属性,IE只能显示FF,Chrome和edge的图形。添加类型属性chrome和FF后,便可以显示图表/图形

相关问题