Avatar billede kimlarsen1978 Nybegynder
17. april 2006 - 01:24 Der er 18 kommentarer og
1 løsning

If "no action i x minutter" then redirect

Hejsa
Jeg har en infostander som står offentligt tilgængelig (det er i bund og grund en almindelig .asp/html/javascript hjemmeside den viser).

Via denne infostander kan man klikke sig rundt til forskellig information - jeg vil gerne kunne redirecte til startsiden, hvis der ikke har været aktivitet (musen står stille) på skærmen i x minutter - fx. 5 minutter.

Dummy kode:

If (no action with mouse in 5 min){
  window.location.href("http://www.ensidejegangiver.dk/")
}

Nogle der kan finde ud af det?
Avatar billede mjense173 Nybegynder
17. april 2006 - 02:36 #1
Avatar billede mjense173 Nybegynder
17. april 2006 - 02:38 #2
<script type="text/javascript" language="javascript">

var reloadTimer = null;

window.onload = function(){
setReloadTime(300);
}

function setReloadTime(secs){
if (arguments.length == 1){
  if (reloadTimer) clearTimeout(reloadTimer);
  reloadTimer = setTimeout("setReloadTime()", Math.ceil(parseFloat(secs) * 1000));
}else{
  window.location.replace(window.location.href);
}
}


function disableReload(){
if(reloadTimer)
  clearTimeout(reloadTimer);
document.form1.reloadTime.value = 'Disabled';
}

</script>
Avatar billede mjense173 Nybegynder
17. april 2006 - 02:40 #3
Ovenstående er koden fra linket, med 5*60 = 300 sek.

Denne funktion, laver en reload, men du kan nemt sætte den til en anden location istedet. Eks. forsiden.
Avatar billede kimlarsen1978 Nybegynder
17. april 2006 - 10:35 #4
Okay - det ser fint ud, men jeg er vel nødt til at kalde disableReload() hver eneste gang musen bevæger sig? Ellers reloader den vel uanset hvad? Hvordan gør jeg så det?
Avatar billede mclemens Nybegynder
17. april 2006 - 11:06 #5
<!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>Ingen titel</title>

<script type="text/javascript">
window.onload=function(){rtime=300;setInterval("rit();",1000);}
function rit(){rtime-=1;if(rtime<=0)location.href="2.html";}
document.onmousemove=function(){rtime=300;}
document.onkeydown=function(){rtime=300;}
</script></head>

<body>
abc
</body></html>
Avatar billede mclemens Nybegynder
17. april 2006 - 11:07 #6
De 3 rtime værdier skal rettes til antal sekunder der skal gå
fra aktivitet til reload og location href skal indstillers ;)
Avatar billede mclemens Nybegynder
17. april 2006 - 11:08 #7
indstillers -> indstilles :P
Avatar billede mclemens Nybegynder
17. april 2006 - 11:22 #8
(virker i IE, FF, Opera, Netscape)
Avatar billede mclemens Nybegynder
17. april 2006 - 11:28 #9
ot: Hvis du bruger den anden og disabler reload ved mousemove / eller keydown så reloader den slet ikke mere... den mangler en countdown funktion...
Avatar billede kimlarsen1978 Nybegynder
17. april 2006 - 11:54 #10
mclemens 17/04-2006 11:06:09:
Det spiller MAX :-)

Den giver points - svar bitte
Avatar billede mclemens Nybegynder
17. april 2006 - 12:06 #11
her ;)
Avatar billede mclemens Nybegynder
17. april 2006 - 12:14 #12
og tak for point :)
Avatar billede kimlarsen1978 Nybegynder
17. april 2006 - 12:15 #13
No problemo ;)
Avatar billede kimlarsen1978 Nybegynder
17. april 2006 - 12:28 #14
Det er lige én ting, det virker ikke som du har skrevet det hvis man sætter koden i HEAD for der er body'en ikke lavat også virker window.onload ikke.

Jeg har sat den ind i onload på body'en også spiller det som det skal:

<body topmargin="0" onload="startautomatiskredirect();">

også byttet:

window.onload=function(){
  rtime=300;setInterval("rit();",1000);
}
ud med:
function startautomatiskredirect(){
    rtime=300;
    setInterval("rit();",1000);
}

Men ved du om det tilsvarende document.onmousemove findes noget til at fange brug af scrolknappen på musen? document.onpagescrol (mit gæt) virker ikke :-(
Avatar billede mclemens Nybegynder
17. april 2006 - 13:01 #15
[ Det er lige én ting, det virker ikke som du har skrevet det hvis man sætter koden i HEAD for der er body'en ikke lavat også virker window.onload ikke. ]
- ikke forstået? det virker fint her... window.onload aktiveres når vinduet er klart ... hvis vinduet ikke bliver færdig loadet fordi indhold ikke kan findes eller tags ikke er ordentligt afsluttet så virker det ikke ... men prøv mit eksempel det virker med window.onload... (window.onload funktionen aktiveres ikke før body er klar)

document.onclick kan også tilføjes... der er ikke en onpagescroll - dog vil musen jo som regel bevæge sig, man vil bruge piletaster eller man vil klikke med musen for at scrolle... (medmindre man bruger mousewheel... men kort tid efter vil man jo bevæge musen igen...)

<!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>Ingen titel</title>

<script type="text/javascript">
window.onload=function(){rtime=300;setInterval("rit();",1000);}
function rit(){rtime-=1;if(rtime<=0)location.href="2.html";}
document.onmousemove=function(){rtime=300;}
document.onkeydown=function(){rtime=300;}
document.onclick=function(){rtime=300;}
</script></head>

<body>
abc
</body></html>
Avatar billede mclemens Nybegynder
17. april 2006 - 13:04 #16
[ Det er lige én ting, det virker ikke som du har skrevet det hvis man sætter koden i HEAD for der er body'en ikke lavat også virker window.onload ikke. ]
- og her hvis du vil tjekke om hvad indhold der er loadet når alert'en køres (window.onload tjek om body er klar)

<!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>Ingen titel</title>

<script type="text/javascript">
window.onload=function(){alert(document.documentElement.innerHTML);}
</script></head>

<body>
abc
</body></html>
Avatar billede mclemens Nybegynder
17. april 2006 - 13:05 #17
og et link til w3c validatoren http://validator.w3.org/
- det er det nemmeste sted at tjekke sit site for fejl ;)
Avatar billede mclemens Nybegynder
17. april 2006 - 13:08 #18
dog hvis du har flere window.onload funktioner i samme document skal de lægges ind i samme window.onload funktion og der må i det tilfælde ikke være onload på body samtidig da det vil give konflikt så window.onload ikke køres... - dem fra body'ens onload skal så istedet indsættes i window.onload funktionen
Avatar billede mclemens Nybegynder
17. april 2006 - 13:09 #19
... men hvis alt virker ved brug af body onload er det jo helt fint ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester