• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Nazgulled

Verificar se o Javscript está activo no browser

20 mensagens neste tópico

Qual será a forma mais fácil, simples e elegante de verificar se o Javascript se encontra activo no browser e em caso contrário, mostrar uma mensagem de erro?

Atenção, não me interessa se o browser suporta ou não Javascript, apenas se esta activo, se não suportar, não estará a activo e a mensagem será a mesma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<noscript>O browser não tem JavaScript activo.</noscript> penso que faz o serviço.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas isso só me mostra uma mensagem caso o javscript está desactivado ou o browser n suporte, eu preciso de saber, no genero de um if...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu vi num site em que ele criam 1 cookie com JS e depois verificam se o cookie existe com PHP :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu vi num site em que ele criam 1 cookie com JS e depois verificam se o cookie existe com PHP :)

Boa ideia... :) Thanks!

Se mis alguém tiver outras ideias, são bem vindas...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas tipo, e se eu quiser verificar se o Javascript está activo de cada vez que uma página é carregada? A minha ideia inicial seria, criar o cookie em JS, em PHP verificar se existe e se existir, apaga-lo de seguida para que na próxima vez, seja possível criar o cookie de novo.

Que acham? Ou será que tem ideias pa uma solução melhor?

Basicamente o que estou a fazer é um site que usa bastante Javascript e não vai funcionar sem ele, está mesmo fora de questão. Ou seja, eu quero saber em qualquer altura que qualquer página seja carregada, se o JS está activo ou não, se não estiver, quero mostrar uma página diferente no browser com mensagem de erro sem permitir acesso a mais nada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Epá, já que é algo que precisa mesmo de JavaScript, podes fazer algo assim:

<html>
<head>
<script type="text/javascript">
document.getElementsByTagName("body")[0].innerHTML = 'oix';
</script>
</head>
<body>
O seu browser não suporta JavaScript.
Faça download do firefox: getfirefox.com
</body>
</html>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso não tem lógica nenhuma para o que eu quero. Lê o meu post anterior e tenta perceber...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então acho que definir um cookie com JavaScript e tirares o cookie com PHP a cada request serve. Claro está, pressuponho que vais ter que visitar alguma página primeiro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Claro está, pressuponho que vais ter que visitar alguma página primeiro.

Não percebi...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Imagina que tens isto:

if($_COOKIE['js_enabled'] != 'yes') die("Já mandei ali em cima nesta resposta código javascript para fazer verificação. Anyway, não detectei o JavaScript activo quando fizeste o pedido");

Se tiveres a ir directo ao link, ele manda o code JavaScript e só vais ter o cookie (mesmo que o JavaScript esteja activo) quando fizeres o 2o request.

Esquema:

Cliente (JavaScript activo, ainda não fez nenhum request)

|

| pede página que precisa de JavaScript

|

\/

Server (não recebeu o cookie definido por javascript, o código nunca foi executado... mas ele não sabe disso)

|

| manda a resposta a dizer que não tem JavaScript activo, mas manda o código de verificação

|

\/

Cliente (recebe o código e gera o cookie. o utilizador pede a página outra vez)

|

| manda o pedido já com o cookie

|

\/

Server (só agora é que recebe o cookie, manda agora a página que precisa de JavaScript)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sinceramente? Não percebi nada do que disseste... Nem tão pouco percebi a intenção porque a cena do JS + Cookie + PHP eu sei como fazer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, não me consegui explicar... Detesto quando isto acontece.

O que eu estava a tentar dizer é que, se fizeres a verificação do lado do servidor sem teres visitado uma página que te crie o cookie no cliente, isso vai ficar buggy e só vai passar na verificação no refresh seguinte.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, já percebi.

E agora que penso nisso que dizes, realmente, o que ia fazer não ia funcionar e ia ter esse bug que falas. Nem se quer tinha pensado exactamente como iria implementar isso apenas achei a ideia dada pelo magician interessante e como de momento não tenho tempo para isto, nem se quer me dei ao trabalho de pensar.

Isto assim estraga-me os planos para fazer exactamente o que eu queria... Não quero estar a fazer sempre 2 requests sempre que o utilizador clica num link. Mas depois penso nisso, agora não estou com paciência e tenho de estudar. Mas se tiverem ideias...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fácil. Dás uma sessão ao utilizador e espetas-lhe uma variável isFirstRequest. Se for, mandas uma página com código para fazer refresh à página caso o JavaScript esteja activo (usando o window.location.refresh() por exemplo).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não te serve assim?

<div id="msgerr">O seu browser não tem JS</div>
<script type="text/javascript">
<!--
document.getElementById('msgerr').innerHTML="O seu browser suporta JS, parabéns";
-->
<script>

Por prredefinição assumimos que não suporta. Caso suporte, a mensagem é substituida pela mensagem "o seu browser. suporta JS parabens".

há inumeras maneiras de resolver isso... cookies, mensagens, alerts... é so escolher o que melhotr se adpata à situação

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já expliquei que no meu caso o site vai usar JS extensivamente e o site não funciona sem ele. Pelo que eu quero ter maneira de verificar se o JS está activo ou não em cada request que seja feito em qualquer página que o utilizador esteja aceder. E quero-o programar de forma que possa fazer: if activo then do this else do that.

Neste momento, a forma + indicada é criação de cookie em JS e verificar no PHP, só não sei como dar a volta ao problema apontado pelo djthyrax.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E se o javascript não estiver activo? Fica uma página em branco...

Mandas a mensagem de erro na mesma, e mandas código JavaScript para tirar a mensagem de erro (document.getElementsByTagName("body")[0].innerHTML = 'Aguarde...';). 
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vou ter de ver isso para a semana que agora tou em tempo de estudo para exames...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora