我通读Crockford's JavaScript best practise,他说:
无需使用语言或类型属性。确定MIME类型的是服务器而不是脚本标记。
但我从未见过有人在type
标记中省略<script>
属性...
你们包括type
吗?为什么(不是)?
答案 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规范称默认type
为text/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代码不起作用。通过使用这个我解决了一些浏览器兼容性问题。