Ao fim de X segundos sem mexer no rato, volta à página Index.html

ScalaZone

Power Member
Boas,
na primeira vez que coloquei esta dúvida, esqueci de mencionar um pequeno pormenor.
Ou seja, realmente quero que ao fim de X segundos ele volte à página inicial, mas só quando deixar de haver interactividade com o rato.
Ou seja, estamos a navegas pelo site, e de repente deixamos de mexer com o rato, ao fim de X segundos se ninguém lhe mexer, ele volta à página inicial.

Alguém será capaz de me arranjar esse fragmento de código ?

<script>
document.write="Estamos redirecionando...";
window.setTimeout("location.href='www.siteaqui.com '",3000)
</script>
o valor 3000 é o tempo em milisegundos
Este foi o código que me deram, mas neste caso , ao fim de 3 segundos, estando a mexer ou não com o rato, ele volta para a página inicial.
 
Maneira mais simples, é usares o onmousemove e atribuires uma função JS que reponha o tempo em segundos que queres, e se essa função chegar a 0, é porque o onmousemove não executou e não repos os segundos, portanto redireccionas.
 
não é a solução mais precisa, e pode certamente ser melhorada mas foi o que se arranjou

Código:
<script type="text/javascript">
//variavel com o tempo que falta para redireccionar
var tempo=3;

//função que r
function reduzirTempo() {
   tempo=tempo-1;
   if (tempo_inicial<=0) {
      tempo_inicial=3;  //isto é preciso para não redireccionar logo quando se faz retroceder para esta página
      window.location="INSERIR_URL_AQUI";
   }
}

setInterval(reduzirTempo, 1000);</script>

<body onMouseMove="tempo_inicial=3" onMouseClick="tempo_inicial=3">
Isto vai para outro lado a menos que se clique ou se mexa o rato</body>
 
Solução

não é a solução mais precisa, e pode certamente ser melhorada mas foi o que se arranjou

Código:
<script type="text/javascript">
//variavel com o tempo que falta para redireccionar
var tempo=3;

//função que r
function reduzirTempo() {
   tempo=tempo-1;
   if (tempo_inicial<=0) {
      tempo_inicial=3;  //isto é preciso para não redireccionar logo quando se faz retroceder para esta página
      window.location="INSERIR_URL_AQUI";
   }
}

setInterval(reduzirTempo, 1000);</script>

<body onMouseMove="tempo_inicial=3" onMouseClick="tempo_inicial=3">
Isto vai para outro lado a menos que se clique ou se mexa o rato</body>


Ena, obrigadão!
Desconhecia essa variável reservada (onMouseMove).
:x2:
 
Dúvida

não é a solução mais precisa, e pode certamente ser melhorada mas foi o que se arranjou

Código:
<script type="text/javascript">
//variavel com o tempo que falta para redireccionar
var tempo=3;

//função que r
function reduzirTempo() {
   tempo=tempo-1;
   if (tempo_inicial<=0) {
      tempo_inicial=3;  //isto é preciso para não redireccionar logo quando se faz retroceder para esta página
      window.location="INSERIR_URL_AQUI";
   }
}

setInterval(reduzirTempo, 1000);</script>

<body onMouseMove="tempo_inicial=3" onMouseClick="tempo_inicial=3">
Isto vai para outro lado a menos que se clique ou se mexa o rato</body>


Olha,
já pus o código tal como o tens na minha página para testar antes de o modificar, mas não deu em nada ! =|
Colei mesmo a seguir à tag <body> e dentro do <body> acrescentei essa tua linha de código que tens dentro do <body>

Foi assim que interpretei esse código!
Estou correcto? Ou nem por isso?
:lol:
 
Olha,
já pus o código tal como o tens na minha página para testar antes de o modificar

lê a 2ª linha da minha assinatura :D

a tag <script> e o seu conteudo copias para dentro do HEAD, e no BODY apenas acrescentas aquelas parametros do onClick e onMouseMove

e depois tens que editar no script a parte onde diz INSERIR_URL_AQUI e por o link para onde queres redireccionar
 
Ainda não deu

lê a 2ª linha da minha assinatura :D

a tag <script> e o seu conteudo copias para dentro do HEAD, e no BODY apenas acrescentas aquelas parametros do onClick e onMouseMove

e depois tens que editar no script a parte onde diz INSERIR_URL_AQUI e por o link para onde queres redireccionar

Lol, eu sei que tens razão :002:
A minha área de programação não é esta :007:
Uso muito o nosso "amigo", mas quando ele não ajuda, procura-se os "inimigos".

Só que já experimentei, e não me está a redirecionar =|
Isso não terá que estar no onLoad da página, ou assim qualquer coisa?
Abraço
 
Não, porque ele já tem o setInterval e não está dentro de nenhuma função, mas se quiseres criar uma para ele, depois chamas a função dentro do body onload();


Edit: o código dele funciona
 
Pois a mim não dá lol

Pois,
pensei nisso.
Mas não é necessário, uma vez que ele usa essa função "setInterval", não é?

Eu uso o Firefox, às vezes o código não funciona e com o IE já funciona. Mas agora nem num nem no outro dá.
Já compreendi o script, mas acho que não entra no If, logo não decrementa, daí não rederecionar =/
 
eu usei precisamente o firefox para testar. e não está ai nada que á partida possa dar problemas em browsers diferentes, por isso o problema não deve ser dai

tenta por um alert(tempo); em diferentes pontos do código (vários sitios da função, dentro do onClick, e fora da função, junto ao setInterval)
assim vês se o código chega a ser executado e ao mesmo tempo vais sabendo o valor da variavel

e instala também o firebug (add-on do firefox) que ajuda muito a detectar erros no javascript
 
Tenho a página em .html

Reparei que ao escrever aquilo dentro da tag <body> ele não me reconhece o comando mouseClick ou o mouseMove.

Terá alguma coisa haver com isso ?
Ou é suposto funcionar em páginas em HTML também ?
 
Ok, a parte de que eu disse que o código dele funciona, só tem um pequeno pormenor, não funciona.. ele usou duas variáveis, e depois o coutndown ficou mal feito.

aqui está uma pagina exemplo

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>teste timer</title></title>
<script type="text/javascript">
//variavel com o tempo que falta para redireccionar
var tempo_inicial=3;
//função que r
function reduzirTempo() {
   tempo_inicial=tempo_inicial-1;
   if (tempo_inicial<=0) {
      tempo_inicial=3;  //isto é preciso para não redireccionar logo quando se faz retroceder para esta página
      window.location="http://www.google.com";
   }
}
setInterval(reduzirTempo, 1000);</script>
</head>
<body onMouseMove="tempo_inicial=3">
Isto vai para outro lado a menos que se clique ou se mexa o rato</body>
</html>
 
eishh que estupidez minha >(>(

tinha começado por ter duas variaveis, mas podia jurar que tinha testado depois ao mudar os nomes. desculpa lá isso
 
Exactamente

Ok, a parte de que eu disse que o código dele funciona, só tem um pequeno pormenor, não funciona.. ele usou duas variáveis, e depois o coutndown ficou mal feito.

aqui está uma pagina exemplo

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>teste timer</title></title>
<script type="text/javascript">
//variavel com o tempo que falta para redireccionar
var tempo_inicial=3;
//função que r
function reduzirTempo() {
   tempo_inicial=tempo_inicial-1;
   if (tempo_inicial<=0) {
      tempo_inicial=3;  //isto é preciso para não redireccionar logo quando se faz retroceder para esta página
      window.location="http://www.google.com";
   }
}
setInterval(reduzirTempo, 1000);</script>
</head>
<body onMouseMove="tempo_inicial=3">
Isto vai para outro lado a menos que se clique ou se mexa o rato</body>
</html>


Foi isso mesmo, o código baralhou-se no uso dessas variáveis.
Bem visto.
É por isso que sempre programei com mais do que uma pessoa, sabe-se sempre onde está o erro.
Obrigadão aos dois, assim já funcionou
:x2:
Bom trabalho :banjump:
 
Back
Topo