我正在 facebook 中开发浏览器扩展,现在我的问题是 facebook 覆盖了 setTimeout 和 setInterval 本机函数,它们的实现在 Internet Explorer 上不起作用。
有没有办法实现这些功能?
我正在 facebook 中开发浏览器扩展,现在我的问题是 facebook 覆盖了 setTimeout 和 setInterval 本机函数,它们的实现在 Internet Explorer 上不起作用。
有没有办法实现这些功能?
您可以创建一个 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 或具有其他名称的全局变量中)。