2010-11-22 115 views
60

哪个更好或更方便地使用:哪个更好:<脚本类型= “文/ JavaScript的”> ...</script>或<script> ...</script>

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

<script>...</script> 
+5

如果您使用javascript作为语言,那么当然第一个更好 – 2010-11-22 08:29:38

+0

我猜你将java脚本声明为脚本的性能增益是微不足道的,但是很好的问题! – 2010-11-22 08:30:56

+8

如果我们在Html v4和Html v5中,“正确”答案是否有所不同? – 2010-11-22 09:52:02

回答

96

你需要在所有类型属性所有的浏览器?如果您使用HTML5,则不会。否则,是的。 HTML 4.01和XHTML 1.0根据需要指定type属性,而HTML5将其作为可选属性,默认为text/javascript。 HTML5现已广泛实施,因此如果您使用HTML5文档类型,则<script>...</script>是有效且不错的选择。

至于类型属性中应该包含哪些内容,2006年注册的MIME类型application/javascript旨在替换text/javascript,并且受所有主流浏览器(包括Internet Explorer 9)的当前版本的支持。来自the relevant RFC的报价:

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

* application/javascript 
    * application/ecmascript 

其在本文件中也被定义,旨在用于普通使用状态,来代替。

然而,IE直至并包括版本8没有一个<script>元素中有两种application/javascriptapplication/ecmascripttype属性执行脚本,所以如果你需要支持旧的IE浏览器,你坚持text/javascript

+2

你不需要“type”属性。对HTML4.01或XHTML 1.0进行验证并不是你应该做的事情,而且所有的浏览器都会在没有'text/javascript'的情况下支持你的标签。 – 2011-06-13 21:53:22

+8

@Ian:在撰写本文时,HTML5规范是一个工作草案,尚未演变成其目前的永久移动目标状态。 HTML5的浏览器实现在他们现在所处的位置上是相当可观的。考虑到这一点,我认为当时的HTML5并不适合在一般网络上使用,我的回答是绝对公平的,并且总是带有免责声明*“如果您希望您的HTML有效”*。我同意,事情已经开始了,而且这个答案可以通过修订来实现,但我不同意在HTML 4.01中编写网页现在总是做错了。 – 2011-06-13 22:44:57

+1

+1,刚刚发现了这个问题。它让我想起了Anne Van Kesteren博客上的[多个帖子](http://www.google.co.uk/search?rlz=1C1SVEA_enGB358GB358&gcx=c&sourceid=chrome&ie=UTF-8&q=anne+van+kesteren+script+type) ,包括[JavaScript MIME类型](http://annevankesteren.nl/2005/02/javascript-mime-type),他在这里讨论这个问题。我找不到它,但我确信有一个帖子,他建议不要使用'type',因为它适用于所有浏览器。也许这是别人。 – 2011-10-13 08:40:37

9

双方将工作,但XHTML标准要求你指定type太:

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

<!ELEMENT SCRIPT - - %Script;   -- script statements --> 
<!ATTLIST SCRIPT 
    charset  %Charset;  #IMPLIED -- char encoding of linked resource -- 
    type  %ContentType; #REQUIRED -- content type of script language -- 
    src   %URI;   #IMPLIED -- URI for an external script -- 
    defer  (defer)  #IMPLIED -- UA may defer execution of script -- 
    > 

类型=内容类型[CI] 该属性指定的元素的 内容的脚本语言和覆盖默认 脚本语言。脚本 语言被指定为内容 类型(例如,“text/javascript”)。 作者必须为此 属性提供值。此属性没有默认值 。

注意上述重点。

http://www.w3.org/TR/html4/interact/scripts.html

注:随着HTML5(远)的,不需要type属性,是默认的。

6

除非您使用的是html5,否则您需要使用<script type="text/javascript"> </script>。在这种情况下,我们鼓励你喜欢<script> ... </script>(因为默认情况下,指定到该值类型属性)

2

<script type="text/javascript"></script>,因为它的正确方法,并兼容

3

这是所有需要:

<!doctype html> 
<script src="/path.js"></script> 
0

有了最新的Firefox,我必须使用:

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

否则脚本可能无法正常运行。

相关问题