HTML noscript: conteúdo alternativo com JavaScript desativado
O HTML <noscript> contém conteúdo de reserva para situações em que o navegador não consegue usar scripts. Ele não detecta um download malsucedido de JavaScript ou um erro de tempo de execução, portanto você deve implementar mensagens de erro separadamente.
Scripts desativados e execução falha são diferentes
Quando o navegador está configurado para executar scripts, o conteúdo dentro de noscript não é exibido como conteúdo normal da página. Um arquivo ausente, erro de sintaxe ou exceção em tempo de execução não altera automaticamente a página para noscript. Se os leitores precisarem de orientação quando um recurso falha, considere fornecer uma mensagem no HTML básico e atualizá-la apenas após o script ser executado com sucesso.
Exemplo completo: compare a execução bem-sucedida com um erro
Salve o seguinte documento como noscript-demo.html e abra-o em um navegador. Com o JavaScript ativado, a mensagem inicial muda para uma mensagem de sucesso. O exemplo não utiliza bibliotecas externas nem solicitações ao servidor.
<!doctype html>
<html lang="pt">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Comparação do comportamento de noscript</title>
</head>
<body>
<h1>Exercício sobre o estado do script</h1>
<p id="status">O script ainda não atualizou esta mensagem.</p>
<noscript>
<p>Os scripts não estão disponíveis. Leia as orientações básicas abaixo.</p>
</noscript>
<p>Orientação básica: você pode ler esta página sem scripts.</p>
<script>
if (new URLSearchParams(location.search).has('fail')) {
throw new Error('Erro de execução de demonstração');
}
document.getElementById('status').textContent = 'O script foi executado.';
</script>
</body>
</html>
- Abra o documento com a execução de scripts ativada. A página exibe
O script foi executado.e as instruções básicas, enquanto a mensagemnoscriptpermanece oculta. - Abra-o novamente com
?fail=1acrescentado ao endereço. O erro de demonstração mantém a mensagem inicial no lugar, mas a mensagemnoscriptnão aparece porque a execução de scripts ainda está ativada. Você pode verificar o erro de demonstração no console das ferramentas de desenvolvedor. - Desative o JavaScript para esta página usando as configurações do navegador ou as ferramentas de desenvolvedor, em seguida recarregue-a para exibir a mensagem
noscript. Simplesmente excluir o elementoscripté um teste diferente. - Após o exercício, restaure a configuração original do JavaScript, remova a string de consulta do endereço e recarregue a página.
Se seu ambiente restringe strings de consulta em endereços de arquivos, sirva o mesmo arquivo através de um servidor web local para comparação. O menu e o escopo de desativação de scripts variam conforme o navegador e as ferramentas de desenvolvedor, então verifique as configurações relevantes. Aplique a alteração temporariamente na página do exercício e restaure-a depois, em vez de desativar os scripts em todo o navegador.
Manter o conteúdo básico e as orientações em body
Coloque parágrafos e links de fallback comuns dentro de body, como o exemplo faz. O conteúdo permitido de noscript dentro de head é restrito, então não insira parágrafos ou botões lá. Não aninhe um noscript dentro de outro.
Se o JavaScript gerar todas as explicações essenciais ou opções de contato, os leitores podem perder o acesso quando ele não for executado. Forneça o conteúdo no HTML inicial sempre que possível, depois melhore progressivamente as partes que necessitam de interação. Isso reduz a dependência de uma mensagem de fallback sozinha. Não presuma que noscript forneça recuperação de erros ou recursos de segurança; a referência referência de noscript na MDN explica suas condições de exibição.




