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

2022-08-30 05:01:30

哪个更好或更方便使用:

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

<script>...</script>

答案 1

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

至于 type 属性中应包含的内容,2006 年注册的 MIME 类型旨在替换所有主要浏览器(包括 Internet Explorer 9)的当前版本,并支持该类型。引用相关 RFC 中的一句话application/javascripttext/javascript

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

  * application/javascript
  * application/ecmascript

它们也在本文档中定义,旨在供共同使用,应改用。

但是,直到版本 8(包括版本 8)的 IE 不会在属性为 or 的元素内执行脚本,因此,如果您需要支持旧的 IE,则会遇到 .<script>typeapplication/javascriptapplication/ecmascripttext/javascript


答案 2

两者都有效,但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