IE8中的settimeout问题

时间:2011-08-10 07:38:27

标签: javascript internet-explorer-8 settimeout

在IE8中使用javascript setTimeout函数时,我遇到了一个奇怪的问题。 我想使用像这样的'setTimeout'函数 -

setTimeout(timeout,2000, {name:'saarthak'});

    function timeout(opts)
    {       
        alert('hello ' + opts.name);
    }

setTimeout的第三个参数是我想传递给调用函数的参数。这在FF,Chrome中完美无缺,但在IE8中却没有。

有没有人知道可以做些什么?或者实现这一目标的任何工作?

由于

2 个答案:

答案 0 :(得分:11)

可能不支持那里,所以请改为:

window.setTimeout(function() {
    timeout({name:'saarthak'});
},2000);

意义从匿名函数中调用函数。

答案 1 :(得分:3)

如果您想通过更改变量来调用 timeout (例如,在循环中使用许多名称调用 timeout ),您也可以在IE8中使用

var names = ["saarthak", "saarthak2", "saarthak3"]; 
for (var q in names) {
  setTimeout(
    (function(opts){
          return function(){
                    alert ("hello " + opts.name)            
                  }
     })({name:names[q]}), 2000);
}

请参阅:http://jsfiddle.net/q4HYz/