2010-02-15 14 views
142
<script type="text/javascript"> 
    /* ... */ 
</script> 

vsEtiqueta de script HTML: tipo o idioma (u omite ambos)?

<script language="Javascript"> 
    /* ... */ 
</script> 

que se deben utilizar y por qué?

(editar) O, la tercera alternativa: la omisión de cualquiera de estos, tales como el código de ejemplo en la referencia de la API de jQuery:

<script src="http://code.jquery.com/jquery-latest.js"></script> 

Respuesta

140

El atributo language ya no se utiliza durante mucho tiempo, y debe no ser usado

Cuando W3C trabajaba en HTML5, descubrieron que todos los navegadores tienen "texto/javascript" como la secuencia de comandos predeterminada type, por lo que they standardized it to be the default value. Por lo tanto, tampoco necesita type.

Para páginas en XHTML 1.0 o HTML 4.01 omitiendo type se considera no válido. Trate validating lo siguiente:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<script src="http://example.com/test.js"></script> 
</head> 
<body/> 
</html> 

Se le informará del siguiente error:

Line 4, Column 41: required attribute "type" not specified

Así que si eres un fan de las normas, lo utilizan. No debería tener ningún efecto práctico, pero, en caso de duda, también puede ser respetado por la especificación.

+7

Si está utilizando HTML5 y el script es JavaScript, especificar 'type' es completamente innecesario ya que [text/javascript es el predeterminado] (http://www.w3.org/TR/html5/scripting-1. html # the-script-element). –

2

El atributo tipo se utiliza para definir el tipo MIME dentro del documento HTML. Dependiendo de qué DOCTYPE utilice, se requiere el valor de tipo para validar el documento HTML.

El atributo de idioma le permite al navegador conocer el idioma que está utilizando (Javascript vs. VBScript) pero no es necesariamente esencial y, IIRC, ha quedado en desuso.

+0

El tipo MIME ya indica el idioma. El atributo de idioma es redundante. –

34

HTML 4/XHTML1 requiere

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

HTML5 se enfrenta al hecho de que sólo hay un lenguaje de script en la web, y permite

<script>...</script> 

Este último funciona en cualquier navegador que soporte scripting (NN2 +)

+23

HTML5 todavía admite 'Otros lenguajes de scripting' en la web., Pero predetermina el tipo a 'text/javascript' si ningún tipo está explícitamente definido. –

+5

Claro. Mi punto era que HTML4/XHTML1 no quería que JavaScript fuera el predeterminado por razones de pureza teórica, mientras que HTML5 hace una compensación más sana. – Ms2ger

+0

¿Cuáles son los otros lenguajes de scripting para web? –

Cuestiones relacionadas