代码之家  ›  专栏  ›  技术社区  ›  pencilCake

哪个更好:<script type=“text/javascript”>…</script>或<script>…</script>

  •  80
  • pencilCake  · 技术社区  · 14 年前

    哪一种更好或更方便使用:

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

    <script>...</script>
    
    6 回复  |  直到 11 年前
        1
  •  129
  •   Tim Down    8 年前

    你需要一个类型属性吗?如果你使用的是HTML5,不可以。否则,可以。HTML 4.01和XHTML 1.0指定 type 属性,而HTML5将其作为可选属性,默认为 text/javascript . HTML5现在已经被广泛实现,所以如果你使用HTML5 doctype, <script>...</script> 是一个有效的选择。

    至于type属性中应该包含什么,MIME类型 application/javascript 2006年注册的 文本/javascript 所有主要浏览器(包括Internet Explorer 9)的当前版本都支持。引用自 the relevant RFC :

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

      * application/javascript
      * application/ecmascript
    

    本文件中也对其进行了定义,旨在供共同使用,应予以替代。

    但是,IE版本8之前(包括版本8)不在 <script> 元素与 类型 两者的属性 应用程序/javascript application/ecmascript ,所以如果你需要支持旧的 文本/javascript .

        2
  •  10
  •   Sarfraz    14 年前

    两者都可以工作,但是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 --
      >
    

    类型=内容类型 此属性指定元素的脚本语言 内容并覆盖默认值 脚本语言。脚本 语言被指定为内容 键入(例如,“text/javascript”)。 作者必须为此提供值 属性。没有默认值 对于这个属性。

    注意上面的重点。

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

    注: 类型 属性不是必需的,是默认值。

        3
  •  8
  •   fcalderanfcalderan    14 年前

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

        4
  •  5
  •   chovy    11 年前

    这就是所需要的:

    <!doctype html>
    <script src="/path.js"></script>
    
        5
  •  3
  •   Flexo - Save the data dump sunny moon    11 年前

    <script type="text/javascript"></script> 因为它的方式是正确的并且兼容所有的浏览器

        6
  •  -2
  •   Rob    7 年前

    对于最新的Firefox,我必须使用:

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

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