Javascript 哪些浏览器(和版本)支持setTimeout和setInterval的回调参数?
根据和,Javascript 哪些浏览器(和版本)支持setTimeout和setInterval的回调参数?,javascript,Javascript,根据和,window.setTimeout和window.setInterval具有以下形式 var handle = window.setTimeout( handler [, timeout [, arguments... ] ] ); var handle = window.setInterval( handler [, timeout [, arguments... ] ] ); 大多数消息来源称(通用)Internet Explorer不支持可选的参数 是否有支持和不支持它的浏览器和
window.setTimeout
和window.setInterval
具有以下形式
var handle = window.setTimeout( handler [, timeout [, arguments... ] ] );
var handle = window.setInterval( handler [, timeout [, arguments... ] ] );
大多数消息来源称(通用)Internet Explorer不支持可选的参数
是否有支持和不支持它的浏览器和版本列表
测试支持的一个例子是
<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>
测试
设置超时:测试..
设置间隔:测试。。
t=window.setTimeout(//setTimeout
函数(b){//回调
document.getElementById('t').innerHTML=(b | | false);//测试arg1
},
0,
true//arg1
);
i=window.setInterval(//setInterval
函数(b){//回调
document.getElementById('i').innerHTML=(b | | false);//测试arg1
窗口。清除间隔(i);
},
0,
true//arg1
);
使用基于问题中示例代码和浏览器的测试,预期结果为true
,失败时结果为false
,以下是浏览器支持表
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
既然使用匿名函数传递额外参数非常简单,而且它可以在任何地方运行,为什么不直接使用它来避免麻烦呢?这个问题我在任何地方都找不到真正的答案,比如,答案假设每个浏览器的每个版本都是相同的,所以我去寻找答案,并决定与大家分享。