Karandeep Singh
Karandeep Singh

Reputation: 1279

difference b/w <script

What is the difference between:

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

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

  3. < script language="javascript">< /script>

Upvotes: 5

Views: 455

Answers (3)

Tim Down
Tim Down

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

Quentin
Quentin

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

Matthew Flaschen
Matthew Flaschen

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

Related Questions