javascript – 实现setTimeout本机方法

我正在Facebook上浏览器扩展,现在我的问题是facebook覆盖了setTimeout& setInterval本机函数,它们的实现在Internet Explorer上不起作用.

有没有办法实现这些功能?

解决方法:

您可以创建一个iframe然后访问它的窗口对象,获取新的setTimeout定义并覆盖全局命名空间中的那个:

var f = document.createElement('iframe');
document.body.appendChild(f);
window.setTimeout = f.contentWindow.setTimeout;
document.body.removeChild(f);  

虽然这很有效,但是对于2个脚本来说,开始覆盖彼此的变量可能不是一个好的想法.我建议你让FB控制setTimeout函数并使用它的新副本,但不要再次覆盖它(你可以将它存储在本地var中,或者存储在具有其他名称的全局变量中).

上一篇:javascript – 如何跳过setInterval函数的第一个延迟?


下一篇:javascript – JS clearInterval或window.clearInterval?