2016-04-28 58 views
0

創建非DOM相關自定義事件(使用經典chrome.Event界面)並手動存儲並觸發它的最習慣方法是什麼?在Chrome擴展中創建自定義事件的最習慣方式

我在我的程序中的對象obj上,我想創造一些事件的對象,如obj.event1obj.event2這樣的:

obj.event1.addListener(callback); 
obj.event2.removeListener(callback); 
... 

是有效的調用。

我知道這很容易實現它自己,但我想知道是否有更好的方法。謝謝。

個人研究:

  • DOM events:針對從document對象
  • chrome.events創建:顯示界面沒有解釋如何創建自定義事件
  • Chrome events:它顯示如何添加規則到現有的事件,而不是如何創建自己的自定義事件。

回答

1

chrome.Event不能用於自定義事件。

要觸發而不庫自定義事件,標準DOM事件可以使用如下:

var listener = function(evt) { 
    console.log(evt.detail); 
}; 

var target = document.createElement('a'); // Anything that implements EventTarget 
target.addEventListener('myEvent', listener); 
target.dispatchEvent(new CustomEvent('myEvent', { 
    detail: 'test', 
})); 

正如你所看到的,也沒有必要,用於登記document所有事件,這是非常可能使用任何實現了EventTarget interface的對象。