<script> tag vs <script type = 'text/javascript'> tag

102
我正在想,什么是

之间的区别?
<script>
<script type = 'text/javascript'>

不同的Web服务器有所不同吗?

例如,(我知道提供w3schools链接是不正确的,但请看)

http://www.w3schools.com/js/tryit.asp?filename=tryjs_myfirst

使用Chrome,我访问了w3schools网站,发现只需要<script>标签。

然而,在进行离线JavaScript测试时,我发现我需要

<script type = 'text/javascript'>
标签。为什么呢?

@Pumbaa80 我的问题不同。我问的是它是否受不同的Web服务器影响。 - Lok Jun
2
这是一个重复的问题,与Web服务器无关。如果您认为在离线测试中需要该属性,则应明确提出并提供演示您意思的代码(并解释为什么您认为需要它)。 - Jukka K. Korpela
1
@JukkaK.Korpela 不是。我也指定了我的问题。 - Lok Jun
5个回答

91
在HTML 4中,type属性是必需的。根据我的经验,如果缺少该属性,所有浏览器都将默认为text/javascript,但这种行为没有定义在任何地方。虽然理论上可以省略它并假设它将被解释为JavaScript,但这是无效的HTML,因此为什么不添加它呢。
在HTML 5中,type属性是可选的,默认为text/javascript。
使用<script type="text/javascript">或简单地使用<script>(如果省略,则类型相同)。不要使用<script language="JavaScript">;language属性已被弃用。

参考
http://social.msdn.microsoft.com/Forums/vstudio/en-US/65aaf5f3-09db-4f7e-a32d-d53e9720ad4c/script-languagejavascript-or-script-typetextjavascript-?forum=netfxjscript

有什么区别<script>标签与type和没有type的<script>标签?

你是否需要type属性?

我正在使用HTML5- 不需要

我不使用HTML5- 需要


但是为什么w3schools的try-it-editor不需要整行呢? - Lok Jun
你是在引用那段文字吗? - thefourtheye
9
请标明出处。现在人们可能会认为这是你自己的话语。 - thefourtheye
这并没有回答“有什么区别”的问题(区别在于其中一个标签具有另一个标签没有的属性),也没有回答“不同的Web服务器是否不同”或“为什么会这样”(无论那意味着什么)的问题。 - Jukka K. Korpela
1
@LuizaRodrigues text/javascript已经过时,当您需要时请始终使用application/javascript。https://dev59.com/mWEi5IYBdhLWcg3wpdfJ#21098951 - Just code
显示剩余9条评论

30

<script>是HTML 5。

<script type='text/javascript'>是HTML 4.x(以及XHTML 1.x)。

<script language="javascript">是HTML 3.2。

不同的Web服务器是否有所不同?

不是的。

当我进行离线JavaScript测试时,我意识到我需要<script type = 'text/javascript'>标签。

事实并非如此。您的测试案例可能存在其他问题。


13

道格拉斯·克罗克福德(Douglas Crockford)说:

type="text/javascript"

该属性是可选的。自从网景2(Netscape 2),所有浏览器中的默认编程语言都是JavaScript。在XHTML中,该属性是必需的且无需添加。在HTML中最好不要添加它,因为浏览器知道该怎么做。

在HTML 4.01和XHTML 1(.1)中,对于<script>元素,type属性是必需的


你从哪里得到的? - Lok Jun
@leonneo — 答案中有一个链接。 - Quentin
@leonneo 取自 http://javascript.crockford.com/script.html,已在顶部添加链接。 - Zaheer Ahmed
4
澄清一下:Crockford谈论的是“使其运行”,而不是“使其有效”。 - user123444555621
1
你让我想起了道格拉斯。 - WynandB

6
<!-- HTML4 and (x)HTML -->
<script type="text/javascript"></script>


<!-- HTML5 -->
<script></script>

类型属性用于标识在脚本元素内嵌代码或通过元素的src属性引用的脚本语言。这个属性是以MIME类型指定的,支持的MIME类型例如text/javascript、text/ecmascript、application/javascript和application/ecmascript。如果这个属性不存在,则默认为JavaScript。

Ref:https://developer.mozilla.org/en/docs/Web/HTML/Element/script


-2
你只需要使用<script></script>标签即可。 <script type="text/javascript"></script>不是一个有效的HTML标签,因此为了最佳的SEO实践,请使用<script></script>标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接