eu tenho uma página
http://www.zen76171.zen.co.uk/aaa2.html
com este HTML
<!doctype html>
<html>
<head>
<noscript>aaa</noscript>
<script>document.write("bbb")</script>
</head>
<body>
ccc
</body>
</html>
Entendo que o conteúdo da tag noscript deve ser executado se um navegador não estiver executando javascript.
No chrome ou no firefox, sem extensões bloqueando nada, obtenho a saída de bbb ccc. Isso é bom, isso faz sentido. 'bbb' mostra porque o javascript é permitido e ccc mostra porque mostrará se o javascript está habilitado ou não.
Em seguida, tento instalar o NoScript no Firefox https://addons.mozilla.org/en-GB/firefox/addon/noscript/
Agora, quando recarrego a página que mencionei http://www.zen76171.zen.co.uk/aaa2.html
Isso mostra ccc
. Isso me indica que os scripts estão sendo bloqueados, então essa parte é boa.
Mas a saída que eu esperaria é aaa ccc
, porque esperaria que 'aaa' mostrasse quando os scripts estivessem desabilitados e os scripts estivessem desabilitados.
Há também um problema secundário que eu contornei, que é que se eu desabilitar ou mesmo 'remover' o NoScript do Firefox, ainda recebo a mesma resposta de 'ccc', tenho que desinstalar e reinstalar o Firefox para remover o NoScript. Mas, por enquanto, isso servirá quando eu quiser remover o NoScript.
Esta pergunta é: por que mostra apenas 'ccc' e não 'aaa ccc'?
adicionado
Na verdade, recebo apenas o 'ccc' mostrado com 'uBlock Origin'. Se eu instalar o 'uBlock Origin' e optar por deixar como está para não desabilitar os scripts, recebo 'bbb ccc' (bem). Considerando que, se eu clicar para desativar os scripts na página, recebo 'ccc'. O 'aaa' não está sendo exibido.
A tag noscript foi usada indevidamente, enquanto a extensão do navegador está funcionando corretamente. Além disso, o resultado da página pode ser armazenado em cache e, portanto, uma atualização forçada (recarregar com cache de substituição) provavelmente é necessária.
Uso impróprio
Não, a saída esperada 'aaa' não será mostrada porque a tag noscript foi usada indevidamente.
A tag HTML noscript no W3schools fornece uma explicação concisa para o uso:
Em outras palavras, a tag noscript usada pelo OP é válida com base no HTML5, mas não segue o padrão HTML . A tag noscript no elemento head do HTML não deve conter nenhum "texto livre".
Resultado da página
A maioria dos navegadores, incluindo o Firefox, usa cache por padrão, portanto, é provável que seja necessária uma atualização forte. Isso pode ser facilmente reproduzido o tempo todo, a menos que o usuário tenha configurado o comportamento do cache de maneira diferente.
Discrepância 1 : A atualização forçada é executada por meio de um atalho de teclado, que pode ser Ctrl+ F5ou Ctrl+ Shift+ Rpara o Firefox. No caso de extensão do navegador, o efeito em cache pode persistir até que o navegador seja reiniciado novamente (a experiência do usuário pode ser diferente).
A tag noscript que continha 'aaa' provavelmente está sendo ignorada ou omitida pelas extensões, porque o uso de 'aaa' não segue o padrão HTML. A tag noscript no elemento head HTML deve conter apenas os três elementos conforme observado acima.
Discrepância 2 : O resultado da página será 'bbb ccc' também ao visualizar o arquivo HTML localmente no Firefox, mesmo quando o uBlock Origin estiver ativado e a opção estendida "Desativar JavaScript" estiver marcada. Isso provavelmente se deve à permissão limitada dada às extensões no Firefox Quantum. Em outras palavras, a extensão do navegador é incapaz de bloquear o script para uma página HTML local exibida por meio do esquema URI de arquivo (não via localhost executado por um servidor da web, que é outra questão diferente).
Tente novamente
Considere o conteúdo HTML modificado da seguinte forma:
Em seguida, carregue o HTML no Firefox com o uBlock Origin e sua opção "Desativar JavaScript" esteja desmarcada (OFF) ou marcada (ON).
Discrepância 3 : O 'aaa' ficará visível apenas se o JavaScript estiver desativado no próprio navegador (configuração oculta do Firefox, about:config - "javascript.enabled" definido como "false"). Como alternativa, use qualquer navegador somente de texto para ver um resultado semelhante. Isso é diferente da opção fornecida pela extensão do navegador, que o Firefox Quantum limitou por design .
TL;DR Use a tag noscript no elemento do corpo HTML, para tornar o texto visível quando o script estiver desabilitado. A extensão do navegador está funcionando corretamente de acordo com o padrão HTML, mas limitada pelo design.