Marca de Script HTML: tipo ou língua (ou omitir ambos)?

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

Vs.

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

Qual deve ser utilizado e porquê?

ou, a terceira alternativa: omitir qualquer uma destas, como o código de exemplo na referência da API de jQuery:

<script src="http://code.jquery.com/jquery-latest.js"></script>
Author: Donald Duck, 2010-02-15

3 answers

O atributo language foi desactualizado durante muito tempo e não deve ser utilizado.

Quando o W3C estava a trabalhar no HTML5, descobriram que todos os navegadores têm "text/javascript" como o script por omissão type, por isso padronizaram-no para ser o valor por omissão. Por isso, também não precisas.

Para páginas em XHTML 1. 0 ou HTML 4. 01 omitindo type é considerado inválido. Tentar validar o seguinte:

<!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>

Será informado do seguinte: erro:

Linha 4, coluna 41: atributo exigido "tipo" não especificado

Então, se és fã dos padrões, usa-o. Não deve ter qualquer efeito prático, mas, em caso de dúvida, mais vale seguir a especificação.
 148
Author: Matchu, 2015-05-26 12:05:52

HTML4 / XHTML1 necessita

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

O HTML5 enfrenta o facto de que só existe uma linguagem de script na web, e permite

<script>...</script>

Este último funciona em qualquer navegador que suporte scripting (NN2+).

 37
Author: Ms2ger, 2010-07-16 18:27:39

O atributo type é usado para definir o tipo MIME dentro do documento HTML. Dependendo do DOCTYPE que você usa, o valor do tipo é necessário para validar o documento HTML.

O atributo linguagem permite ao navegador saber qual a língua que está a usar (Javascript vs. VBScript) mas não é necessariamente essencial e, IIRC, foi desactualizado.

 2
Author: JasCav, 2010-02-15 16:51:20