Ultimamente, tenho estado em uma série de "fontes de visualização" em sites com design e conteúdo interessantes. Um desses sites, o Squarespace , possui blocos de <script>
tags dentro de uma <noscript>
tag, assim:
<!-- Page is at: http://squarespace.com -->
...
...
<noscript id="inline-deps">
<link rel="stylesheet" type="text/css" href="//cloud.typography.com/7811972/758964/css/fonts.css" />
<script type="text/javascript" src="https://static.squarespace.com/static/ta/5134cbefe4b0c6fb04df8065/7400/assets/logomark/logomark.min.js?37"></script>
<link rel="stylesheet" href="https://static.squarespace.com/static/ta/5134cbefe4b0c6fb04df8065/7400/assets/logomark/logomark.min.css?37" type="text/css" />
</noscript>
...
...
Isso me pareceu estranho e me levou a pesquisar informações para ver se há algum tipo de funcionalidade / finalidade oculta para um pouco de HTML tão estranho, mas sem sucesso. Existe algum tipo de objetivo em ter <script>
tags dentro dos <noscript>
elementos ou isso é apenas um exemplo de HTML incorreto?
javascript
html
noscript
Agent.Logic_
fonte
fonte
<base href="">
,<meta … />
,<title>
e<link … />
elementos) parece que eles estão abusando<noscript>
de templates.Respostas:
Pesquisei o código e encontrei esse trecho (limpei-o para torná-lo mais legível):
Como você pode ver, a
<noscript>
tag possui o ID#inline-deps
, que é referenciado no código (linha 3) para carregar dependências de forma assíncrona e sob demanda.Eles provavelmente usam um
<noscript>
elemento, pois permite acessar diretamente os elementos DOM, em vez de colocá-lo em uma sequência ou comentário (o que considero particularmente ruim, pois os comentários não são para informações reais) e, em seguida, analisam-no. Também impede a execução de scripts e estilos CSS até que seja carregado especificamente.Pessoalmente, acho isso um abuso da
<noscript>
tag. Eu nem tenho certeza se é um código HTML5 válido. O uso de outros métodos, como declarar dependências em um objeto JavaScript com um carregador de scripts, deve ser usado sempre que possível.fonte
<script type="text/html">...</script>
usado para o mesmo propósito - alguém tem prós / contras dos dois?<noscript>
dele esteja visível para usuários que não sejam JavaScript; a maioria dos sites simplesmente não oferece suporte a esses usuários, mas você também gostaria de mostrar uma mensagem explicativa simples para eles.