setTimeout中的额外参数:最早的IE版本支持
Extra paramater(s) in setTimeout: earliest IE version support?
为了避免隐含的eval和不必要的代码,我想使用:setTimeout(alert, 1000, "Hello");
而不是:setTimeout('alert("Hello")', 1000);
或:
setTimeout(function(){
alert("Hello");
},
1000);
现在我已经读到IE从IE8和更高版本支持这一点,如果我从模拟器(在IE11中)运行它,似乎即使是IE9也不支持它。
有人能告诉我,对于IE8和IE9的实际版本,这是否属实吗?
我在IE9和IE8中都失败了:http://jsbin.com/nuranote/1在IE10和IE11中为我工作。
有趣的是,他们在setTimeout
的IE开发中心页面上没有提到这种支持。。。
现在,如果alert
只是一个例子,但您不打算使用主机提供的功能(这些功能并不总是由Function.prototype
支持)来实现这一点,那么您可以这样做:
// Won't work with `alert` on IE9 but does with real JavaScript functions.
// Even `alert` works IE10+ (they finally got it about Function.prototype)
setTimeout(yourFunction.bind(null, "Hello"), 1000);
这仍然创建了一个函数,但以(理论上)稍微优化的方式。(你必须为IE8和更早的版本,可能还有其他一些旧的浏览器填补这个漏洞。)
相关文章:
- IE版本检查停止工作
- jsPDF在任何IE版本中显示iframe
- 获取IE版本+将类添加到正文
- 如何在旧 IE 版本中将捕获组与 String.split 一起使用
- 什么是 IE 版本的网络驱动程序.Capabilities.firefox().
- 正则表达式无法正常工作以识别 IE 版本
- 在 JavaScript 中检测 IE 版本(v9 之前)
- IE 版本 10.0.9200 “忘记”了 CSS 样式
- 没有 jQuery 在 IE 版本 6 - 11 中工作
- 自定义选择和输入标签,IE版本看起来很糟糕
- $.parseXML() 在高于 IE 8 的 IE 版本中不起作用
- Iframe不能在所有IE版本中完全加载
- 在JavaScript中检测完整的IE版本
- Lab.js jquery选择不同的ie版本
- 使用javascript自动检测IE版本、截图、打印
- Javascript不能在所有IE版本中工作.带有浏览器检测的脚本
- IE版本在javascript中没有条件注释
- IE - JavaScript返回错误的IE版本
- setTimeout中的额外参数:最早的IE版本支持
- 在IE版本9之前的JavaScript中,什么等效于replace()方法