Reputation: 1279
What is the difference between:
< script language="javascript" type="text/javascript">< /script>
< script type="text/javascript">< /script>
< script language="javascript">< /script>
Upvotes: 5
Views: 455
Reputation: 324727
Number 2 is the best you can do for now and for the foreseeable future.
First, the language
attribute is deprecated in the HTML 4.01 specification and the draft HTML 5 specification, and omitted from XHTML 1.0 Strict, so options 1 and 3 are out.
Second, do you need a type attribute at all? Yes. HTML 4.01 and XHTML 1.0 specifies the type
attribute as required while HTML5 has it as optional, defaulting to text/javascript
. Therefore until HTML5 is finalised and widely implemented, you must have the type
attribute if you want your HTML to be valid, which rules out the simple <script></script>
(I know this wasn't one of the original options, but it's something that I have seen recommended).
Thirdly, what should go in the type attribute? As noted by Matthew Flaschen, the MIME type application/javascript
registered in 2006 is intended to replace text/javascript
. A quote from the relevant RFC:
This document thus defines text/javascript and text/ecmascript but marks them as "obsolete". Use of experimental and unregistered media types, as listed in part above, is discouraged. The media types,
* application/javascript * application/ecmascript
which are also defined in this document, are intended for common use and should be used instead.
However, IE (up to and including version 8) doesn't execute script inside a <script>
element with a type
attribute of either application/javascript
or application/ecmascript
, so these are both unusable for the foreseeable future and we're stuck with text/javascript
.
Upvotes: 6
Reputation: 944545
<script language="javascript" type="text/javascript"></script>
HTML 4.01 / XHTML 1.0 Transitional with deprecated language attribute
<script type="text/javascript"></script>
HTML 4.01 / XHTML 1.0 Strict (or Transitional without deprecated language attribute)
<script language="javascript"></script>
HTML 3.2
Upvotes: 3
Reputation: 285077
All of them are technically deprecated, but the second annoys people least. :)
Both language (see W3C XHTML 1.1) and text/javascript are deprecated (see MIME registry for text). The recommended mime type is application/javascript, but this is not backwards-compatible.
Upvotes: 7