2010-06-03 46 views
5

是什么区别:差的B/W <脚本

  1. <脚本语言= “JavaScript的” 类型= “文本/ JavaScript的”> </SCRIPT>

  2. <脚本类型= “文本/ JavaScript的”> </SCRIPT>

  3. < SCRIPT LANGUAGE = “JavaScript的”> </SCRIPT>

+0

参见:http://stackoverflow.com/questions/112482/what-is-the-difference-between-lang-and -type-attributes-in-a-script-tag – CMS 2010-06-03 05:22:37

+0

另请参阅:http://stackoverflow.com/questions/2706290/why-write-script-typetext-javascript-when-the-mime-type-is-set-由这服务器/ 2706345#2706345 – 2010-11-21 11:28:02

回答

6

2号是你现在和可预见的未来可以做的最好的。

首先,language属性是不鼓励在HTML 4.01 specificationdraft HTML 5 specification,和从XHTML 1.0 Strict省略,所以选项1和3所出。

其次,你需要一个type属性吗?是。 HTML 4.01和XHTML 1.0根据需要指定type属性,而HTML5将其作为可选属性,默认为text/javascript。因此,除非HTML5完成并广泛实施,否则如果您希望HTML有效,则必须具有type属性,这排除了简单的<script></script>(我知道这不是原始选项之一,但它是我所见过的推荐的)。

第三,类型属性应该怎么做?正如Matthew Flaschen所指出的,2006年注册的MIME类型application/javascript旨在替代text/javascript。来自the relevant RFC的报价:

因此,该文件定义了text/javascript和text/ecmascript,但将它们标记为“过时”。不鼓励使用上面部分列出的实验和未注册媒体类型。媒体类型

* application/javascript 
    * application/ecmascript 

它们也在本文档中定义,旨在用于通用,应该用来代替。

然而,IE(直至并包括版本8)<script>元素中有两种application/javascriptapplication/ecmascripttype属性不执行脚本,所以这些都是不可预见的未来,我们就完蛋了与text/javascript

7

所有这些都在技术上被弃用,但第二个至少使人恼火。 :)

这两种语言(请参阅W3C XHTML 1.1)和text/javascript都已弃用(请参阅MIME registry for text)。 recommended mime类型是application/javascript,但这不是向后兼容的。

3
<script language="javascript" type="text/javascript"></script> 

HTML 4.01/XHTML 1.0过渡与弃用语言属性

<script type="text/javascript"></script> 

HTML 4.01/XHTML 1。0严格(或不加弃用语言属性过渡)

<script language="javascript"></script> 

HTML 3.2