webForumDet fria alternativet

en timer på session

13 svar · 464 visningar · startad av nille99

nille99Medlem sedan aug. 2002353 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. 2002385 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. 2002353 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 20013 386 inlägg
#4

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

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

jag kör i en asp sida

EitrazMedlem sedan sep. 2002385 inlägg
#8

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

-Eitraz

nille99Medlem sedan aug. 2002353 inlägg
#9

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

nille99Medlem sedan aug. 2002353 inlägg
#10

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

colioneMedlem sedan juni 20013 386 inlägg
#11

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

window.onLoad(countdown());

till

document.onload=countdown
nille99Medlem sedan aug. 2002353 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 20013 386 inlägg
#13

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

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

tack det fungerade

Genererad på 382 ms · cache AV · v20260730165559-full.f96bc7eb