webForumDet fria alternativet

time out?

JavaScriptur Javascript

4 svar · 257 visningar · startad av Jesper T

Jesper TMedlem sedan nov. 20017 144 inlägg
#1

Vad är fel på denna?
Det är ingen tidsfördröjning.

<body onLoad="setTimeout(window.open('popup.asp','','width=640,height=480,scrollbars=auto'),3000);">
PepeJeriaMedlem sedan feb. 2003774 inlägg
#2

window.setTimeout tar 2 parametrar som strängar:

<body onLoad="setTimeout('window.open(\'popup.html\',\'\',\'width=640,height=480,scrollbars=auto\')',3000);">

Jesper TMedlem sedan nov. 20017 144 inlägg
#3

Ok, fattar inte men det funkar. Tack!

dectgapMedlem sedan sep. 20021 655 inlägg
#4

Tänk dig att setTimeout använder eval() på det första argumentet.

eval("var foo = 1 + 5;");
setTimeout("var foo = 1 + 5;", 500);

De båda raderna gör precis samma sak, förutom att den andra raden inte utför något förrän efter en halv sekund.

JojoxxMedlem sedan juni 20004 308 inlägg
#5

Bara en liten sak som gör att raderna inte är riktigt ekvivalenta. Nyckelord som this tappar funktion vid setTimeout eftersom objektet som de syftar på inte är aktuellt längre. Exempel;

<a href="sida.html" onclick="eval('alert(this.href)'); return false;">klicka</a>
<a href="sida.html" onclick="setTimeout('alert(this.href)',10); return false;">klicka</a>

Påpekar det bara eftersom det ofta skapar huvudbry har jag märkt.

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