Tim*_*own 128

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

至于应该在type属性中应该包含什么application/javascript,2006年注册的MIME类型旨在替换text/javascript所有主要浏览器(包括Internet Explorer 9)的当前版本并受其支持.来自相关RFC的引用:

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

  * application/javascript
  * application/ecmascript
Run Code Online (Sandbox Code Playgroud)

本文档中也定义了这些内容,仅供常用,应改为使用.

但是,IE及版本8之前的IE不会在具有或者属性的<script>元素中执行脚本,因此如果您需要支持旧的IE,那么您就会陷入困境.typeapplication/javascriptapplication/ecmascripttext/javascript

  • @Ian:在撰写本文时,HTML5规范是一个工作草案,尚未演变为其永久移动目标的当前状态.HTML5的浏览器实现远远落后于他们现在的位置.考虑到这一点,我认为当时HTML5在一般网站上使用是不可行的,我的回答是绝对公平的,并且总是带有免责声明*"如果你希望你的HTML有效"*.我同意事情已经发生了,这个答案可以用于修订,但我不同意在HTML 4.01中编写网页现在总是错误的做法. (9认同)
  • 你不需要'type`属性.对HTML4.01或XHTML 1.0进行验证不再是你应该做的了,并且所有浏览器都支持你的标签而不需要`text/javascript` (2认同)

Sar*_*raz 10

两者都可以,但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 --
  >
Run Code Online (Sandbox Code Playgroud)

type = content-type [CI]此属性指定元素内容的脚本语言,并覆盖默认脚本语言.脚本语言被指定为内容类型(例如,"text/javascript"). 作者必须为此属性提供值.此属性没有默认值.

注意上面的重点.

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

注意:从HTML5(很远)开始,该type属性不是必需的,而且是默认属性.


小智 8

您需要使用<script type="text/javascript"> </script>,除非你使用HTML5.在这种情况下,建议您选择<script> ... </script>(因为默认情况下,type属性指定为该值)


cho*_*ovy 5

这就是所需要的:

<!doctype html>
<script src="/path.js"></script>
Run Code Online (Sandbox Code Playgroud)