HTML脚本标签:类型或语言(或省略两者)?

Ric*_*ket 162 html javascript

<script type="text/javascript">
    /* ... */
</script>
Run Code Online (Sandbox Code Playgroud)

<script language="Javascript">
    /* ... */
</script>
Run Code Online (Sandbox Code Playgroud)

应该使用哪个以及为什么?

或者,第三种方法:省略其中任何一种,例如jQuery的API参考中的示例代码:

<script src="http://code.jquery.com/jquery-latest.js"></script>
Run Code Online (Sandbox Code Playgroud)

Mat*_*chu 161

language属性已被弃用了很长时间,不应使用.

当W3C正在开发HTML5时,他们发现所有浏览器都将"text/javascript"作为默认脚本type,因此他们将其标准化为默认值.因此,您也不需要type.

对于XHTML 1.0或HTML 4.01中的页面,省略type被视为无效.尝试验证以下内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script src="http://example.com/test.js"></script>
</head>
<body/>
</html>
Run Code Online (Sandbox Code Playgroud)

您将收到以下错误消息:

第4行,第41列:未指定必需属性"类型"

因此,如果您是标准的粉丝,请使用它.它应该没有实际效果,但是,如果有疑问,也可以按照规范进行.

  • 如果您使用的是HTML5且脚本是JavaScript,则完全不需要指定`type`,因为[text/javascript是默认值](http://www.w3.org/TR/html5/scripting-1.html#the -script元件). (10认同)

Ms2*_*ger 40

HTML4/XHTML1需要

<script type="...">...</script>
Run Code Online (Sandbox Code Playgroud)

HTML5面临的事实是,Web上只有一种脚本语言,并且允许

<script>...</script>
Run Code Online (Sandbox Code Playgroud)

后者适用于任何支持脚本的浏览器(NN2 +).

  • HTML5仍支持Web上的"其他脚本语言",但如果没有明确定义类型,则默认类型为`text/javascript`. (28认同)
  • 当然.我的观点是,HTML4/XHTML1不希望将JavaScript作为理论纯度的默认值,而HTML5则是一个更加平衡的权衡. (7认同)
  • @FakeHeal:当IE拥有巨大的统治权时,VBScript在客户端看到了一些用处.最近,您可以使用客户端编译向客户端提供像CoffeeScript这样的编译到JavaScript语言.半标准WebGL实践是将片段着色器放入脚本标签中,并使用着色器语言.最后,有人怀疑(?)Dart在某些时候可能会在Chrome中原生支持.(我的意思是,当然,对吧?) (6认同)