我应该在我的SCRIPT标签中包含type =“text / javascript”吗?

时间:2009-06-12 07:19:19

标签: javascript

我通读Crockford's JavaScript best practise,他说:

  

无需使用语言或类型属性。确定MIME类型的是服务器而不是脚本标记。

但我从未见过有人在type标记中省略<script>属性...

你们包括type吗?为什么(不是)?

6 个答案:

答案 0 :(得分:10)

你误解了Crockford的意思,他没有说type属性完全无效,只是它不正确。 JavaScript的MIME类型为application/javascript(或application/ecmascript我现在无法记住。)

一般用法是text/javascript浏览器将处理没有任何问题,因为长期以来一直是 defacto 标准。

关于<script src="..."标记,它是多余的,因为服务器确定文件的MIME类型,然后浏览器将处理它。

他最好在YUI Theatre(http://developer.yahoo.com/yui/theater/)的一个视频中解释。我不记得究竟是哪一个他谈到这个,我认为这是在高级JavaScript系列中(但是我已经看了几次,所以它们彼此模糊不清)。

因此,如果您想编写有效的XHTML,您需要提供类似text/javascript的内容,但它不是JavaScript语言的官方 MIME类型。

答案 1 :(得分:8)

如果脚本嵌入页面中,Crockford的建议则无关紧要。

如果您想编写符合标准的HTML,那么它仍然无关紧要。

他通常会发现与JavaScript有关的一切,所以他可能只是给你一些背景信息,而不是告诉你该怎么做。

关注该链接后,该页面显示了它的年龄。例如:

  

<script src=filename.js>标签应该   被放置在体内的晚期   可能。这减少了效果   脚本加载造成的延迟   其他页面组件。

“现代”方法是使用jQuery(或类似样式)在文档加载时执行处理,这会自动解决该问题,允许您将脚本标记放在逻辑意义上的任何位置。

答案 2 :(得分:5)

HTML5规范称默认typetext/javascript ...因此在HTML5中,您可以在所有情况下将其留空,实际上是在Javascript中编写脚本。有关详细信息,请参阅the spec

在HTML4中,type属性为required,因此如果您担心“有效”HTML,则应将其包括在内,显然如果Crockford说不需要该属性,那么在这种情况下,无效HTML没有明显的缺点。

答案 3 :(得分:4)

我使用type属性,因为它是有效HTML所必需的。但实际上,它没有用处。

答案 4 :(得分:2)

HTML和XHTML验证需要type属性,所以我总是写它

答案 5 :(得分:0)

我也会使用type属性,因为有时在firefox中javascript代码不起作用。通过使用这个我解决了一些浏览器兼容性问题。