Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 哪些浏览器(和版本)支持setTimeout和setInterval的回调参数?_Javascript - Fatal编程技术网

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

既然使用匿名函数传递额外参数非常简单,而且它可以在任何地方运行,为什么不直接使用它来避免麻烦呢?这个问题我在任何地方都找不到真正的答案,比如,答案假设每个浏览器的每个版本都是相同的,所以我去寻找答案,并决定与大家分享。