我正在Facebook上浏览器扩展,现在我的问题是facebook覆盖了setTimeout& setInterval本机函数,它们的实现在Internet Explorer上不起作用。
有没有办法实现这些功能?
答案 0 :(得分:5)
您可以创建一个iframe,然后访问它的window
对象,获取新的setTimeout
定义并覆盖全局命名空间中的定义:
var f = document.createElement('iframe');
document.body.appendChild(f);
window.setTimeout = f.contentWindow.setTimeout;
document.body.removeChild(f);
虽然这有效,但是对于2个脚本来说,开始覆盖彼此的变量可能不是一个好的想法。我建议你让FB 控制setTimeout
函数并使用它的新副本,但不要再次覆盖它(你可以将它存储在本地var中,或者带有其他名称的全局变量。)