Asa Medlem sedan dec. 2001 1 860 inlägg Trådstart 1 juni 2003 07:27 #1 Finns det något javascript där man kollar ifall man trycker på någon tangent på tangentbordet?
Om man inte trycket ska en metatagg köras:
If Not onkeyPress Then
<meta http-equiv="refresh" content="10">
End If
Fast med javascript såklart..
Jesper T Medlem sedan nov. 2001 7 144 inlägg Denna funkar om man håller inne någon knapp när man uppdaterar sidan, men endast en gång. Varför vet jag inte.
<script type="text/javascript" language="JavaScript">
<!--
document.onkeypress = refr;
function refr(){
document.write("<meta http-equiv=refresh content=10>")
}
//-->
</script>
J Jojoxx Medlem sedan juni 2000 4 308 inlägg Om vi hoppar över meta-taggen och använder javascript för den funktionen också så är det enkelt:
<script language="JavaScript" type="text/javascript">
var refresh=setTimeout("location.reload(true)",10000);
document.onkeypress=function(){
clearTimeout(refresh);
}
</script>
Jesper T Medlem sedan nov. 2001 7 144 inlägg Ahaaa, det är så man gör.
Fick visserligen inte det att funka, men men.
Asa Medlem sedan dec. 2001 1 860 inlägg Ska testa och återkommer om det ej funkar för mig...
Ska detta funka i alla webbläsare?!?
J Jojoxx Medlem sedan juni 2000 4 308 inlägg Nej, inte fungerar det i alla webbläsare. Vilket script gör det? Men de flesta. Netscape 4+, IE5+, Mozilla, Opera 6+ (skulle jag gissa).
J Jojoxx Medlem sedan juni 2000 4 308 inlägg Vilken webbläsare fungerar det inte i?
Jesper T Medlem sedan nov. 2001 7 144 inlägg Det verkar jojoxx också ha...
C colione Medlem sedan juni 2001 4 421 inlägg Den funkar inte om ni placerar den i headern nej. Men om ni placerar den i body-elementet funkar den alldeles utmärkt!
J Jojoxx Medlem sedan juni 2000 4 308 inlägg Funkar iofs när jag lägger den i <head> också, men det kan vara ett timing-problem - d.v.s. att objektet document inte är definierat innan <body> är definierad. Släng det i <body> och verifiera att det fungerar med ex;
<script language="JavaScript" type="text/javascript">
var refresh=setTimeout("location.reload(true)",10000);
document.onkeypress=function(){
clearTimeout(refresh);
}
</script>
<form name="myform">
<input type="text" name="foo" value="0">
</form>
<script language="JavaScript" type="text/javascript">
var i=0;
setInterval("i++; document.forms['myform'].elements['foo'].value=i;",1000);
</script>
Om någon tangent trycks ner kommer sidan inte att refreshas och räknaren kommer att fortsätta förbi 10.
Jesper T Medlem sedan nov. 2001 7 144 inlägg Följdfråga möjligen lite O.T. : Hur vet man när man måste köra ett script i head alt. i body?
J Jojoxx Medlem sedan juni 2000 4 308 inlägg Prova Nej, men kod som genererar output med document.write() måste ligga i bodyn (eller om det är en funktion måste den anropas därifrån) på det stället där outputen skall hamna. Används objekt på sidan måste dessa finnas genererade innan du försöker anropa dem. Du kan ex. inte skriva/läsa saker från ett formulär som inte genereras förrens senare på sidan. Vid närmare eftertanke brukar det säga sig självt.
Därför kan det vara bra att köra din kod från onload - då vet du att allt är laddat och klart.
Fel:
<script language="JavaScript" type="text/javascript">
document.forms['myform'].elements['mytext'].value="foo";
</script>
<form name="myform">
<input type="text" name="mytext">
</form>
Rätt:
<form name="myform">
<input type="text" name="mytext">
</form>
<script language="JavaScript" type="text/javascript">
document.forms['myform'].elements['mytext'].value="foo";
</script>