无法从不同范围中删除事件侦听器

时间:2014-05-24 02:38:32

标签: javascript firefox event-listener

我尝试为Firefox 29+(Australis)添加一个插件。 我有一个菜单项,我在开启时附加一个事件监听器 每个窗口。 我这样做的标准方式是这样的:

var menuItem = document.getElementById("menuItemId");
if(menuItem) {
   menuItem.addEventListener("click", function onClick() {
       menuItem.removeEventListener("click", onClick, false);
       // my code here;
   }, false);
};

工作正常。但是,我的问题如下:

在某些情况下,我想在进入自定义模式(" about:customizing")时删除侦听器,这是一个不同的范围。当然,要在这种模式下加载我的脚本,我还在" about:customizing"中应用了我的overlay.xul。 URI。

要从此模式中删除侦听器,我尝试了以下操作:

WindowMediator.getMostRecentWindow("navigator:browser")
.document.getElementById("menuItemId")
.removeEventListener("click", onClick, false);

- or -

Window.top

- or - 

window.parent 

etc

我对上述方法和其他类似方法没有运气:-(

有什么想法吗?

0 个答案:

没有答案