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);">
4 svar · 257 visningar · startad av Jesper T
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);">
window.setTimeout tar 2 parametrar som strängar:
<body onLoad="setTimeout('window.open(\'popup.html\',\'\',\'width=640,height=480,scrollbars=auto\')',3000);">
Ok, fattar inte men det funkar. Tack!
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.
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.