webForumDet fria alternativet

använda en variabel globalt

JavaScriptur Javascript

6 svar · 530 visningar · startad av tronez

Medlem sedan juli 2001728 inlägg
Frågan#1

Har stött på ett problem, det är så att att jag vill starta en timer när jag klickat på en knapp, sen när en frame laddat klart ska den anropa en funktion som stoppar timern..

Detta funkar nästan, timern startas å stoppas, men varje gång man klickar på knappen så verker det som den räknar från var timern startades första gången.

Som jag har det nu, så skapar jag startTime =new Date() globalt för att kunna använda den i en annan funktion där jag ska beräkna hur lång tid det tog att ladda sidan. Eftersom det inte funkar har jag provat anropa en funktion som deklarerar variabeln, men då kan jag inte använda den i stop funktionen.

alla funktioner ligger i ett separat dokument
skickar med lite kod...

var startTime = new Date();
// öppna URL i framen
function goURL(url)
{
	window.open('http://'+url,'main');
}

function startTimer()
{
	var startTime = new Date();
}
// när framen laddats klart anropas denna funktion
function stopTimer()
{	
	stopTime = new Date();
	var tDiff = stopTime.getTime() - startTime.getTime();
	stopTime.setTime(tDiff);
	alert("Sidan har laddats klart... det tog "+ stopTime.getSeconds() +" sekunder att ladda sidan");
}

Någon som har en lösning ?

Medlem sedan juni 200032 969 inlägg
#2

Jag tycker att det borde funka som tänkt om du kastar bort var ur funktionen startTimer().

Medlem sedan juli 2001728 inlägg
#3

nej, det funkade inte, den tar fortfarande det Date() som jag skapar högst upp å jämför med i stopTimer() funktionen, tar jag bort det översta så blir startTime tom ist i stopTimer funktionen och inget funkar längre...

Medlem sedan juni 20014 421 inlägg
#4
var startTime

// öppna URL i framen
function goURL(url)
{
	window.open('http://'+url,'main');
}

function startTimer()
{
	startTime = new Date();
}
// när framen laddats klart anropas denna funktion
function stopTimer()
{	
	stopTime = new Date();
	var tDiff = stopTime.getTime() - startTime.getTime();
	stopTime.setTime(tDiff);
	alert("Sidan har laddats klart... det tog "+ stopTime.getSeconds() +" sekunder att ladda sidan");
}

Borde funka...

Medlem sedan juli 2001728 inlägg
#5

Nej, den gör ju inte det =(

var tDiff = stopTime.getTime() - startTime.getTime();

vår felmeddelandet att :

startTime has no properties

Medlem sedan juni 20014 421 inlägg
#6

När anropar du startTimer()

I min version måste du nämligen anropa det....

Medlem sedan juli 2001728 inlägg
#7

ok, jag har ett frameset med 3 frames

top.htm
----------------------------
main.htm |right.htm
|

i top. htm ligger mitt formulär, om jag skriver i en adress i formuläret och klicker på submit så anropas 2 st funktioner onsubmit så öppnar sidan i main.htm, och onclick på knappen så ska timern startas

135 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)