Firefox addon firefox扩展按钮侦听器

Firefox addon firefox扩展按钮侦听器,firefox-addon,addeventlistener,Firefox Addon,Addeventlistener,在我的扩展中,overlay.js包含以下事件: var sto = { onLoad: function() {...}, onMenuItemCommand: function(e) {...}, onToolbarButtonCommand: function(e) {...}, }; window.addEventListener("load", function () { sto.onLoad(); }, false); 我需要一个监听器,每次在加载的页面中单击

在我的扩展中,overlay.js包含以下事件:

var sto = 
{
   onLoad: function() {...},
   onMenuItemCommand: function(e) {...},
   onToolbarButtonCommand: function(e) {...},
};

window.addEventListener("load", function () { sto.onLoad(); }, false);

我需要一个监听器,每次在加载的页面中单击按钮时都会触发。如何实现这一点?

我不确定这是否是您想要的,但您可以尝试对整个文档执行事件委派:

var document_mouseup_lst    = EventListener.createEventListener();
doc.addEventListener("mouseup", document_mouseup_lst, false);
document_mouseup_lst.addEvent("mouseup", function click(e, callback, object){
    var element = e.target;

    if(element.tagName.toLowerCase() === 'button') {
        if (e.which == 1) { // left click
            // do whatever u want
        } else if (e.which == 2) { // middle click
            // do whatever u want
        }
    }

return false;
});

顺便说一句,为了创建eventlistener(获得createEventlistener方法的eventlistener对象),我使用了这个页面

我发现解决方案非常简单。好的,这是来源:

修改后的代码:

var sto = 
{
   onLoad: function() {...},
   onMenuItemCommand: function(e) {...},
   onMouseClick: function(e) {...},
   onToolbarButtonCommand: function(e) {...},
};

window.addEventListener("load", function () { sto.onLoad(); }, false);
document.addEventListener("click", function(e) { sto.onMouseClick(e); }, false, true);

我必须承认我不太理解这个代码,我应该在哪里插入它?在扩展代码中没有这样的事件吗?例如:“onMouseClick:function(){…}”,在这个事件中,我将放置我的函数,就是这样。是否有可以在扩展本身中使用的事件列表。找不到。