Qual é a diferença entre “lang” e atributos “tipo” em uma marca de script?
Pergunta
Para tags HTML <script>
, qual é a diferença técnica entre lang=Javascript
e type=text/javascript
?
Eu costumo usar ambos, porque eu assumiu sempre que navegadores mais antigos precisam de um ou outro.
Solução
Por HTML 4.01 Spec :
tipo : Este atributo especifica a linguagem de script de conteúdo do elemento e substitui a linguagem de script padrão. A linguagem de script é especificado como um tipo de conteúdo (por exemplo, "text / javascript"). Os autores devem fornecer um valor para este atributo. Não há valor padrão para esse atributo.
idioma : Reprovado. Este atributo especifica a linguagem de scripting dos conteúdos deste elemento. Seu valor é um identificador para a linguagem, mas uma vez que estes identificadores não são padrão, este atributo foi preterido em favor do tipo.
Outras dicas
<script language="">
pode ser usado para servir VBScript e diferentes versões do Javascript.
A menos que você precisa de uma versão específica do Javascript, não use o atributo de linguagem, seu código continuará a funcionar como normal sem ele.
Mesmo se você precisar de uma versão específica Javascript para alguma parte do código, tentar testar se o recurso existe em vez disso, com um (typeof window.blah.feature! = "Indefinido") cheque.
Aqui está um exemplo de uso do atributo language: http://bclary.com/2004/08/27/javascript-version- incompatibilidades
O atributo linguagem é obsoleto por causa deste comportamento vagamente definido ou incerto.
O atributo tipo é completamente diferente. Ele informa ao navegador o que mime digite o script é, e deve sempre ser especificada em uma tag script.
língua é o atributo de idade, tipo é o novo. Você teria que usar um doctype de transição (não positivo sobre isso, mas quase certeza) para usar legalmente os dois atributos.
O OP disse especificamente "lang" não "linguagem". A tag muito mais velha "linguagem" teria sido Javascript ou VBScript.
Mas a tag atual e aparentemente válida "lang" é realmente o que escrita ??em> língua como o Inglês, Espanhol , japonês. do Microsoft Visual Studio fornece uma lista suspensa para os valores para "lang" e todos eles são como en-us, fr, ja, etc .. para Inglês EUA, francês, japonês, etc ...
Eu estou pensando que pode , razões válidas para a utilização deste tag, se você tem uma configuração multilingue complexo - talvez haja um sistema mgmt conteúdo que possa suportar isso e, em seguida, entregar o arquivo de javascript adequada - como recursos de controle jQuery?
Type é mais geral e refere-se à codificação MIME do bloco de script. Tanto quanto eu sei que você só precisa de um e, geralmente, o bloco irá funcionar sem qualquer tipo ou lag atributos.
I tendem a usar tipo.
lang é o idioma do script, e tipo é o tipo MIME do conteúdo da tag script.
Basicamente, nenhum atributo é necessário. A única razão para usá-los é a validação, e este tornou-se vazio no HTML5 .