A prática a seguir é bastante comum no JavaScript embutido com o qual tenho que trabalhar:
<script type="text/javascript">
<!--
// Code goes here
//-->
</script>
Eu sei que o objetivo é impedir que navegadores incompatíveis com JavaScript renderizem a fonte, mas isso ainda é uma prática recomendada hoje? A grande maioria dos navegadores usados hoje pode interpretar JavaScript; mesmo os dispositivos móveis modernos geralmente não apresentam problemas.
Quanto ao 'por que não?' pergunta: Recentemente, passei várias horas depurando um problema em que alguém havia deixado o '//' antes de um '->' no final de uma tag de script enterrada profundamente em algumas páginas e isso estava causando um JavaScript misterioso erros.
O que você faz? Isso ainda é considerado uma 'prática recomendada?'
javascript
html
AndreiM
fonte
fonte
Respostas:
O importante é que hoje em dia, se um navegador específico suporta JavaScript ou não, é irrelevante (claramente a grande maioria o faz) - é irrelevante porque quase todos entendem os blocos de script, o que significa que sabem ignorar o JavaScript mesmo que não possam interpretar.
Matt Kruse dá uma explicação um pouco mais detalhada em seu site JavaScript Toolbox sobre o motivo específico de não usar comentários HTML em blocos de script.
Citado dessa página:
Não use comentários HTML em blocos de script
Nos dias antigos do javascript (1995), alguns navegadores como o Netscape 1.0 não tinham nenhum suporte ou conhecimento da tag de script. Portanto, quando o javascript foi lançado pela primeira vez, foi necessária uma técnica para ocultar o código de navegadores mais antigos para que eles não o mostrassem como texto na página. O 'hack' era usar comentários HTML dentro do bloco de script para ocultar o código.
Usar comentários HTML no script é ruim
Nenhum navegador em uso comum hoje ignora a tag <script>, portanto, ocultar o código-fonte javascript não é mais necessário. Na verdade, pode ser considerado prejudicial pelos seguintes motivos:
fonte
Eu parei de fazer isso. Em algum momento, você apenas precisa abrir mão do seu mosaico NCSA.
fonte
De acordo com a recomendação do W3C , era principalmente útil ocultar os dados do script dos AGENTES DO USUÁRIO.
Citado na página W3c :
Comentando scripts em JavaScript O mecanismo JavaScript permite que a string
"<!--"
ocorra no início de um elemento SCRIPT e ignora outros caracteres até o final da linha. JavaScript interpreta "//" como o início de um comentário que se estende até o final da linha atual. Isso é necessário para ocultar a string "->" do analisador JavaScript.fonte
Não, é um resquício de uma solução alternativa usada quando o elemento de script foi introduzido pela primeira vez. Nenhum navegador falha em entender o elemento de script hoje (mesmo que o entenda como "Script que deve ser ignorado porque o script está desativado ou não é compatível").
Em XHTML, eles são ativamente prejudiciais.
Escrevi algo sobre a história disso há um tempo.
fonte
Parei de usar isso há um tempo. Além disso, de acordo com Douglas Crockford , você pode eliminar o atributo type de suas tags de script, pois a única linguagem de script disponível na maioria dos navegadores é JavaScript.
fonte
Se você estiver digitando manualmente, sugiro que sempre use arquivos js externos, isso ajudaria muito.
Em relação à sua preocupação: a maioria dos navegadores são seguros para JavaScript hoje. No entanto, às vezes as pessoas podem escrever analisadores simples para buscar um HTML diretamente - e devo dizer, a citação segura é realmente útil para esses clientes. Além disso, alguns clientes não JS, como o antigo Lynx, obteriam benefícios com isso.
fonte
Se você não incluir texto literal entre as tags de script - isto é, se você carregar scripts de arquivos src, pode esquecer os comentários.
fonte
Eu recomendaria usar uma seção CDATA, conforme descrito nesta pergunta .
fonte
Parei de fazer isso há muito tempo. Você realmente não precisa disso nos dias de hoje.
fonte
Não faço isso, mas outro dia fui validar meu site protegido por senha no w3c. Então eu tive que usar seu método de entrada direta. Ele reclamou do meu javascript, então coloquei os comentários de volta em tudo que estava bem.
fonte