javascript - setTimeout - Internet Explorer

标签 javascript internet-explorer settimeout

我尝试在 IE9 上进行 setTimeout,但它仍然抛出“无效参数”异常...

这是我的代码:

var timeout;
timeout = setTimeout((function(s_text){
    alert(s_text);
})('Hello'), 1000);

有人知道吗?

最佳答案

您正在实现的方法不会起作用。您正在使用将立即执行的 IIFE:

(function(s_text){
    alert(s_text);
})('Hello')

并且会发出“Hello”提醒。但是,由于该方法不返回任何内容,因此您调用超时时什么也没有。

timeout = setTimeout(/*undefined or null*/, 1000);

这就是问题所在。

编辑: 如果你想使用作用域之外已经存在的变量,只要它是在函数可以看到的父作用域中定义的,就可以直接使用它:

var timeout;
var alert_text = "hello";
timeout = setTimeout(function(){
    alert(alert_text);
}, 1000);

关于javascript - setTimeout - Internet Explorer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39898995/

相关文章:

javascript - 取消ajax()成功

javascript - IE8 的谷歌地图 .setMap 问题

javascript - IE11,无法获取函数的参数

jquery - 在事件中使用js代码重定向

JavaScript 递归延迟方法调用

javascript - 我怎样才能在页面加载时首先调用 setTimeout 然后等待五秒钟?

javascript - 使用 Lodash 在对象的任何属性值中查找部分字符串

javascript - 如何隐藏具有特定href的特定类的所有链接

javascript - 如何在输入下显示带有边距顶部的数据列表

css - Internet Explorer 问题和解决方案