Pergunta

Presumo que você não possa usar um trecho de código JavaScript para validar se o usuário do navegador desativou o JavaScript.Então, o que posso usar em vez disso?Alguém pode oferecer um exemplo de código?

Estou tentando envolver uma declaração if/then em torno disso.

Costumo codificar em CFML, se isso ajudar.

Foi útil?

Solução 4

Estamos falando de algo assim:

JavaScript:

<body>
...
...
<script type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script>
<noscript>Your browser does not support JavaScript!</noscript>
...
...
</body>

Outras dicas

isso é um hack total, mas você pode usar um iframe dentro da tag noscript para acionar um HTTP GET em um URL para informar ao servidor que um usuário não tem o javascript habilitado.

<body>
...
...
<noscript>
    <iframe src ="/nojs.aspx?SOMEIDENTIFIER=XXXX&NOJS=TRUE" style="display: none;">
    </iframe>
</noscript>
...
...
</body>

Use as tags HTML <noscript>.

Não tenho certeza do que você está tentando fazer, mas se precisar apenas informar ao usuário que o Javascript é necessário, basta usar a tag '<noscript>'.Se precisar saber no servidor, você pode fazer uma solicitação no estilo Ajax para o servidor a partir de javascript.Se você receber a solicitação, o javascript está funcionando, caso contrário, não.

Ele está pedindo uma verificação para ver se o javascript está habilitado.Só consigo pensar em fazer exatamente o que o OP disse - tente usar algum Javascript com um intervalo para enviar um retorno de chamada se o JS estiver ativado - infelizmente não acho que você possa verificar no lado do servidor se o JS está habilitado, e é por isso que você usa tags do que renderizar conteúdo diferente do servidor.

Se você usar JavaScript discreto então você não precisa verificar se o usuário tem o JavaScript habilitado.

Se eles tiverem o JavaScript ativado, obterão o efeito completo, mas se não tiverem, os usuários ainda poderão usar o seu site.E além de ser melhor em termos de acessibilidade, você pode descobrir que essa abordagem aumenta o seu SEO.

<noscript>
    ...some non-js code
</noscript>

Sim, esse trecho NoScript está certo.

Você pode fazer com que o javascript execute alguma consulta AJAX e verifique se existe.Aqueles que baixam a página e não executam a consulta estão com o JS desabilitado ou são robôs.

Na verdade, tudo que você pode fazer é colocar alguma mensagem nas tags.Parece que me lembro de ter tentado isso no ASP.NET em algum lugar, mas você só pode dizer se o navegador suporta Javascript, e não se ele está realmente permitido/habilitado ou não.

Não sei muito sobre CFML, mas o .NET tem a capacidade de detectar recursos do navegador.No entanto, não tem a capacidade de detectar se o navegador está capaz de javascript, mas virou desligado.Então, você também está preso aí.

Além da tag HTML noscript, não há muito que você possa fazer, até onde eu sei, além de escrever javascript progressivamente (veja aprimoramento progressivo) para que você não precise verificar Javascript:off.

Não conheço JS, mas seria possível modificar os links dentro da página com JS?Se alguém acessar o link não modificado, não estará usando JS, mas se o fizer, estará usando JS.Isto faz algum sentido?

Nunca descobri como fazer isso sem uma viagem de ida e volta, então depende de qual é o seu objetivo.

Se eles precisarem de javascript para continuar, então (em .net) fiz coisas como desabilitar o botão de login no lado do servidor, ativei o lado do cliente com javascript e usei uma tag noscript para mostrar uma mensagem de erro.

Se tiver que funcionar de qualquer maneira, você pode usar o aprimoramento progressivo e/ou usar js para definir um campo oculto e depois definir uma variável de sessão, mas isso significa que você não saberá até chegar à segunda solicitação.

você poderia escrever

<script type="text/javascript" language="javascript">document.write("<input type='hidden' name='hasJs' value='1' />");

ou então escreva um cookie via js e depois leia-o no servidor se quiser verificar se há js no lado do servidor.

se você está procurando uma maneira de verificar no lado do servidor, você pode enviar ao usuário um js que coloca um cookie....se o cookie existir em uma solicitação, você poderá saber se o script funcionou ou não!

Uma maneira confiável de fazer isso é usar $.post do javascript para enviar uma nota ao seu servidor.(Desculpas se houver algum erro nisso, escrito na minha cabeça, será atualizado mais tarde, quando eu começar a testar).Deve permitir que você o construa para que você possa extrair dados da sessão se eles estiverem usando javascript, o que permitirá que você forneça substitutos para javascript sem precisar recorrer a .

Seu script na página:

<script>
function myJavascriptTest(){
    $.post ()('myJavascriptTest.php', {myJavascriptOn: true}, function(){
    return true;
}
myJavascriptTest()
</script>

E no .php direcionado...

<?php

if ($_POST['myJavascriptOn'] == true){
    $_SESSION['javascriptIsOn'] = true;
} else {
    $_SESSION['javascriptIsOn'] = false;
}
?>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top