O que é melhor: ou
que é melhor ou mais conveniente de usar:
<script type="text/javascript">...</script>
ou
<script>...</script>
6 answers
Precisas mesmo de um atributo type? Se estás a usar HTML5, não. Caso contrário, sim. O HTML 4.01 e o XHTML 1.0 especificam o atributo type
como necessário, enquanto o HTML5 o tem como opcional, faltando para text/javascript
. O HTML5 é agora amplamente implementado, por isso se você usar o Doctype HTML5, <script>...</script>
é válido e uma boa escolha.
Quanto ao que deve ir no atributo type, o tipo MIME application/javascript
registado em 2006 destina-se a substituir text/javascript
e é suportado pelas versões actuais de todas as versões principais navegadores (incluindo o Internet Explorer 9). Uma citação de a RFC relevante:
Este documento define assim texto / javascript e texto / ecmascript, mas marca - os como"obsoletos". O uso de meios experimentais e não registrados, como listado em parte acima, é desencorajado. Os tipos de mídia,
* application/javascript * application/ecmascript
Que também são definidos neste documento, destinam-se a uso comum e devem ser utilizados em alternativa.
No entanto, isto é, até à versão 8 inclusive não executa o programa dentro de um elemento <script>
com um atributo type
de application/javascript
ou application/ecmascript
, por isso, se precisar de suportar o antigo IE, fica preso a text/javascript
.
Ambos funcionarão, mas o padrão xhtml requer que você especifique o type
também:
<script type="text/javascript">..</script>
<!ELEMENT SCRIPT - - %Script; -- script statements -->
<!ATTLIST SCRIPT
charset %Charset; #IMPLIED -- char encoding of linked resource --
type %ContentType; #REQUIRED -- content type of script language --
src %URI; #IMPLIED -- URI for an external script --
defer (defer) #IMPLIED -- UA may defer execution of script --
>
Tipo = conteúdo-Tipo [IC] Este atributo indica a linguagem de programação do elemento conteúdo e sobrepõe - se à predefinição linguagem. A programação a linguagem é especificada como um conteúdo type (e.g., "text/javascript"). Os autores devem fornecer um valor para isto atributo. Não existe um valor por omissão para este atributo.
Notifica a ênfase acima.
Http://www.w3.org/TR/html4/interact/scripts.html
Nota: a partir do HTML5 (far away), o atributo type
não é necessário e é por omissão.
Tem de utilizar {[[0]} a menos que esteja a utilizar html5. Nesse caso, você é encorajado a preferir <script> ... </script>
(porque o atributo type é especificado por padrão para esse valor)
Isto é tudo o que é necessário:
<!doctype html>
<script src="/path.js"></script>
<script type="text/javascript"></script>
porque é o caminho certo e compatível com todos os navegadores
Com o último Firefox, tenho de usar:
<script type="text/javascript">...</script>
Ou então o script pode não funcionar corretamente.