2012-09-30 38 views
2

根據WHATWGMDNwindow.setTimeoutwindow.setInterval具有形式哪些瀏覽器(和版本)支持setTimeout和setInterval的回調參數?

var handle = window.setTimeout(handler [, timeout [, arguments... ] ]); 
var handle = window.setInterval(handler [, timeout [, arguments... ] ]); 

大多數消息來源說,(通用)Internet Explorer不支持可選arguments
是否有一個瀏覽器和版本的列表,不支持它?

的測試對於支撐的方式的一個例子是

<html> 
<head><title>test</title></head> 
<body> 
setTimeout: <span id="t">testing..</span><br/> 
setInterval: <span id="i">testing..</span> 
<script type="text/javascript"> 
t = window.setTimeout(// setTimeout 
    function (b) { // callback 
     document.getElementById('t').innerHTML = (b || false); // test for arg1 
    }, 
    0, 
    true // arg1 
); 
i = window.setInterval(// setInterval 
    function (b) { // callback 
     document.getElementById('i').innerHTML = (b || false); // test for arg1 
     window.clearInterval(i); 
    }, 
    0, 
    true // arg1 
); 
</script> 
</body> 
</html> 

隨着預期的結果true,失敗導致如false

+1

因爲它是那麼容易簡單地用一個匿名函數傳遞額外的參數*並且*它到處運行,爲什麼不使用它並避免頭痛? –

+1

這是一個問題,我找不到任何地方的實際答案,因爲假設每個瀏覽器的每個版本都是相同的答案,所以我去了解並決定分享。 –

回答

8

使用基於對瀏覽器中的問題的示例代碼和BrowserShots測試,這裏的瀏覽器支持表

Browser Version setTimeout setInterval 
Chrome  4+  true  true   Lowest version testable 
Firefox 3+  true  true   Did not test lower versions 
MSIE  6  false  false 
MSIE  7  false  false 
MSIE  8  false  false 
MSIE  9  false  false 
MSIE  10  true  true 
Opera          Not tested 
相關問題