哪种更好或更方便使用:
<script type="text/javascript">...</script>
或者<script>...</script>
哪种更好或更方便使用:
<script type="text/javascript">...</script>
或者<script>...</script>
如果你使用的是HTML5,那么你是否需要添加type属性呢?不需要。否则,需要。HTML 4.01和XHTML 1.0 规定type
属性为必填项,而HTML5将其设置为可选项,默认为text/javascript
。由于HTML5已经被广泛实现,所以如果你使用HTML5 doctype,则<script>...</script>
是有效且良好的选择。
至于type属性中应该放什么,2006年注册的MIME类型application/javascript
旨在取代text/javascript
,并得到了所有主要浏览器(包括Internet Explorer 9)当前版本的支持。来自相关RFC的引用:
因此,本文档定义了text/javascript和text/ecmascript,但将它们标记为“过时”。不鼓励使用实验性和未注册的媒体类型,如上面部分中列出的媒体类型。
* application/javascript
* application/ecmascript
这些在文档中也有定义,旨在供常见使用,应该使用它们。
然而,包括版本8及以下的IE不会执行带有type
属性为application/javascript
或application/ecmascript
的<script>
元素内的脚本,因此如果需要支持老IE,则只能使用text/javascript
。
type
属性。无论是HTML4.01还是XHTML 1.0的验证都不再是必须的,而且所有浏览器都能在没有text/javascript
的情况下支持您的标签。 - Ian Storm Taylor"text/javascript;version=1.8"
是为Firefox设计的。根据关于<script>标签的页面所述:“请注意,在Firefox中,您可以使用高级功能(如let语句和其他后续JS版本中的功能),方法是使用“type = application / javascript; version = 1.8”。但是要注意,由于这是一个非标准功能,这很可能会破坏其他浏览器的支持,特别是基于Chromium的浏览器。” - Kevin Fegan两种写法都可以,但是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 --
>
type = content-type [CI] 此属性指定元素内容的脚本语言并覆盖默认的脚本语言。脚本语言被指定为内容类型(例如,“text/javascript”)。 作者必须为此属性提供一个值,没有此属性的默认值。
请注意以上强调。
http://www.w3.org/TR/html4/interact/scripts.html
注:HTML5起,type
属性不是必需且为默认属性。
除非您使用HTML5,否则需要使用<script type="text/javascript"> </script>
。在这种情况下,建议您优先使用<script> ... </script>
(因为type属性默认指定为该值)。
<!doctype html>
<script src="/path.js"></script>
<script type="text/javascript"></script>
是正确的方式,且兼容所有浏览器。
<syntax>...</syntax>
更好、更方便。如果你正在使用 HTML5,就不需要显式地提及 type = "text/javascript"
,因为默认情况下type属性已经设置为"text/javascript"
,所以这是完全可选的。使用最新版的Firefox,我必须使用:
<script type="text/javascript">...</script>
<!doctype html>
时,在<script>
标签上使用 MIME 类型提示type="text/javascript"
是没有必要的,因为它默认适用。另一方面(非HTML5),建议使用 MIME 类型提示type="text/javascript"
。 - nyedidikeke