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

我阅读了Crockford的JavaScript最佳实践 ,他说:

没有必要使用语言或types属性。 它是确定MIMEtypes的服务器,而不是脚本标记。

但是我从来没有见过任何人在<script>标签中省略type属性…

你们包括type ? 为什么不)?

你误解了克罗克福的意思,他没有说type属性是完全无效的,只是它不正确。 JavaScript的MIMEtypes是application/javascript (或者现在我不记得的application/ecmascript )。

尽pipe一般的用法是,那些浏览器在没有任何问题的情况下可以处理text/javascript ,因为这已经成为很长一段时间的事实标准。

关于<script src="..."标签,它是多余的,因为服务器确定文件的MIMEtypes,这就是浏览器将要处理的内容。

他最好在YUI Theatre( http://developer.yahoo.com/yui/theater/ )的一个video中解释它。 我不记得他究竟在谈论哪一个,我想这是在先进的JavaScript系列(但是,我已经看了他们所有的几次,所以他们模糊对方)。

所以如果你想编写有效的XHTML,你需要提供类似于text/javascript东西,但它不是JavaScript语言的官方 MIMEtypes。

如果脚本embedded在页面中,则Crockford的build议是不相关的。

如果你想编写符合标准的HTML,那么它仍然是不相关的。

他一般都会关注与JavaScript有关的所有事情,所以他可能只是给你一些背景信息,而不是告诉你该怎么做。

在链接之后,该页面显示了其年龄。 例如:

<script src=filename.js>标签应尽可能放在身后。 这减less了脚本加载到其他页面组件上造成的延迟的影响。

“现代”方法是使用jQuery(或类似的风格)在文档加载时执行处理,这自动解决了这个问题,使您可以将脚本标记放在任何符合逻辑的地方。

HTML5规范说默认的typetext/javascript …所以在HTML5中,你可以在所有的情况下都保留这个空白,实际上是使用Javascript编写脚本。 有关更多信息,请参阅规范 。

在HTML4中, type属性是必需的 ,所以如果你关心拥有“有效的”HTML,那么你应该包含它,显然如果Crockford说这个属性是不需要的,在这种情况下HTML没有明显的缺点。

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

HTML属性和XHTMLvalidation需要type属性,所以我总是写它

我也将使用types属性,因为,有时在Firefox中JavaScript代码不工作。 通过使用我解决了一些浏览器兼容性问题。