2011-03-03 122 views
0

在我的分機在overlay.js中包括下列事件:Firefox擴展按鈕偵聽

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

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

我需要一個監聽發射每次按鈕被點擊的頁面加載時間。我怎樣才能做到這一點?

回答

0

我找到了解決方案 - 很簡單。確定這裏是源:

https://developer.mozilla.org/en/Code_snippets/Interaction_between_privileged_and_non-privileged_pages

和修改後的代碼:

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); 
0

嗯,我不知道這是ü想要什麼但你可以嘗試做對整篇文檔的事件委託:

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; 
}); 

順便說一句,以創建事件偵聽(這得到了該事件監聽對象createEventlistener方法)我用這個頁面Ajaxian >> An alternative way to addEventListener

+0

我不得不承認,我不太理解這個代碼,我會在哪裏插入呢?例如,在擴展代碼中沒有事件:「onMouseClick:function(){...}」,在這種情況下,我會放置我的功能,就是這樣。是否有我可以在擴展中使用的事件列表。找不到任何。 – user366121 2011-03-04 08:26:40