Javascript 使用内容脚本时窗口中缺少属性

Javascript 使用内容脚本时窗口中缺少属性,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我的插件正在向各种网站注入一些内容脚本。在尝试绑定onbeforeuload或调用window.location.reload后,我意识到window对象缺少一些属性 在通过page mod模块注入代码时,是否有办法绑定某些事件(onbeforeuload,onunload等) 我创建了一个测试加载项,显示缺少以下属性: 如何使用它们的解决方案?简短回答:使用addEventListener()方法添加事件侦听器,如下所示: window.addEventListener("beforeunlo

我的插件正在向各种网站注入一些内容脚本。在尝试绑定
onbeforeuload
或调用
window.location.reload
后,我意识到window对象缺少一些属性

在通过
page mod
模块注入代码时,是否有办法绑定某些事件(
onbeforeuload
onunload
等)

我创建了一个测试加载项,显示缺少以下属性:


如何使用它们的解决方案?

简短回答:使用
addEventListener()
方法添加事件侦听器,如下所示:

window.addEventListener("beforeunload", function(event)
{
  ...
}, false);
详细回答:出于安全原因,您的内容脚本没有直接与DOM对象通信,例如,它看不到任何脚本添加的属性。报告还列出了一些限制:

分配或读取 DOM节点或窗口对象将引发异常。(使用
改为添加EventListener
,并在 如果使用了
处理程序,则返回false;
之前。)

在内容脚本中,您可能无论如何都不想替换网页的事件处理程序,而是添加自己的事件处理程序-这就是
addEventListener()
所做的


感谢您再次回答我的问题!我的问题来源不同。第三方库在我没有注意到的情况下替换了addEventListener。删除库后,我现有的脚本开始像一个符咒一样工作。