webForumDet fria alternativet

en timer på session

JavaScript

13 svar · 464 visningar · startad av nille99

Medlem sedan aug. 2002352 inlägg
Frågan#1

Tjena!
Det är såhär att jag har en session som kontrollerar inloggningsrättigheter på en sida. Jag har session.timeout på 40 min. Nu skulle jag vilja göra en timer som räknar ner minut efter minut och varnar när det är 5 min kvar. Hur gör jag det?

Mvh,
Nille

Medlem sedan sep. 2002366 inlägg
#2

Nåt sånt här menar du eller?

<form name="timeout"><input type="text" name="timeleft" value="<%=Session.timeout%>" readOnly></form>

<SCRIPT language="JavaScript">
<!--
	function countdown() {
		time_left = parseInt(document.timeout.timeleft.value) - 1;
		document.timeout.timeleft.value=time_left;
		if (time_left == 5)
			alert ("5 minuter kvar!");
		if (time_left > 0)
			setTimeout('countdown()',60000);
	}

	window.onLoad(countdown());
// -->
</SCRIPT>

-Eitraz

Medlem sedan aug. 2002352 inlägg
#3

jag får ett felmeddelande när jag kör sidan

document.timeout.timeleft är intenull eller inte ett objekt

<SCRIPT language="JavaScript">
<!--
	function countdown() {
		[B]time_left = parseInt(document.timeout.timeleft.value) - 1; [/B]
		document.timeout.timeleft.value=time_left;
		if (time_left == 5)
			alert ("5 minuter kvar!");
		if (time_left > 0)
			setTimeout('countdown()',60000);
	}

	window.onLoad(countdown());
// -->
</SCRIPT>
Medlem sedan juni 20014 421 inlägg
#4

Är färdigladdad innan du startar nedräkningen? Och har du avslutat formen med: </form>?

Medlem sedan aug. 2002352 inlägg
#5

jag får felmeddelandet när jag startar sidan

<html>
<head>

	<SCRIPT language="JavaScript">
<!--
	function countdown() {
		time_left = parseInt(document.timeout.timeleft.value) - 1;
		document.timeout.timeleft.value=time_left;
		if (time_left == 5)
			alert ("5 minuter kvar!");
		if (time_left > 0)
			setTimeout('countdown()',60000);
	}

	window.onLoad(countdown());
// -->
</SCRIPT>
</head>

<body>

<form name="timeout"><input type="text" name="timeleft" value="<%=Session.timeout%>" readOnly></form>

</body>
</html>
Medlem sedan sep. 2002366 inlägg
#6

Det är en ASP sida du kör va? ;)

tänkte så inte <%=Session.timeout%> är en tom sträng.

-Eitraz

Medlem sedan aug. 2002352 inlägg
#7

jag kör i en asp sida

Medlem sedan sep. 2002366 inlägg
#8

Underligt, jag testade koden jag skrev in ovan och det fungerade utmärkt.

-Eitraz

Medlem sedan aug. 2002352 inlägg
#9

kan du skicka hela sidan kod?
så kanske jag kan se om jag hittar något fel?

Medlem sedan aug. 2002352 inlägg
#10

har du explorer eller något annan browser?
kanske det som är problemet

Medlem sedan juni 20014 421 inlägg
#11

ändra den här delen längst ner på scriptet:

window.onLoad(countdown());

till

document.onload=countdown
Medlem sedan aug. 2002352 inlägg
#12

om jag skriver koden så här så får jag ett annat felmedellande
men jag får den att räkna ner.

Objektet stöder inte egenskapen eller metoden

<form name="timeout"><input type="text" name="timeleft" value="<%=Session.timeout%>" readOnly></form>
<SCRIPT language="JavaScript">
<!--
function countdown() {
time_left = parseInt(document.timeout.timeleft.value) - 1;
document.timeout.timeleft.value=time_left;
if (time_left == 5)
alert ("5 minuter kvar!");
if (time_left > 0)
setTimeout('countdown()',60000);
}
window.onLoad(countdown());
// -->
</SCRIPT>

Om jag byter ut koden

window.onLoad(countdown());

till

document.onload=countdown

så får jag inget felmeddelande men den räknar då inte ner

Medlem sedan juni 20014 421 inlägg
#13

Det har du fullständigt rätt i prova detta:

document.onLoad=countdown()
Medlem sedan aug. 2002352 inlägg
#14

tack det fungerade

139 ms totalt · 2 externa anrop · v20260731065814-full.2ae45ccc
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)