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..
14 svar · 380 visningar · startad av Asa
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..
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>
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>
Ahaaa, det är så man gör.
Fick visserligen inte det att funka, men men.
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).
Verkade ej funka...
Vilken webbläsare fungerar det inte i?
I.E. 6.0
Precis det ja...
Det verkar jojoxx också ha... :q
Den funkar inte om ni placerar den i headern nej. Men om ni placerar den i body-elementet funkar den alldeles utmärkt!
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.
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?
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>