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>
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:
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.Linha 4, coluna 41: atributo exigido "tipo" não especificado
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+).
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.