webForumDet fria alternativet

en timer på session

13 svar · 464 visningar · startad av nille99

nille99Medlem sedan aug. 2002352 inlägg
#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

EitrazMedlem 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

nille99Medlem 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>
colioneMedlem sedan juni 20014 421 inlägg
#4

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

nille99Medlem 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>
EitrazMedlem 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

nille99Medlem sedan aug. 2002352 inlägg
#7

jag kör i en asp sida

EitrazMedlem sedan sep. 2002366 inlägg
#8

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

-Eitraz

nille99Medlem sedan aug. 2002352 inlägg
#9

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

nille99Medlem sedan aug. 2002352 inlägg
#10

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

colioneMedlem sedan juni 20014 421 inlägg
#11

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

window.onLoad(countdown());

till

document.onload=countdown
nille99Medlem 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

colioneMedlem sedan juni 20014 421 inlägg
#13

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

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

tack det fungerade

266 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
136 ms — hämta forumlista (db)
129 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)