创建非 DOM 相关的自定义事件(使用经典的 chrome.Event
接口(interface))并手动存储并触发它的最惯用的方法是什么?
我的程序中有一个对象 obj
,我想在该对象上创建一些事件对象,例如 obj.event1
和 obj.event2
,这样:
obj.event1.addListener(callback);
obj.event2.removeListener(callback);
...
是有效的调用。
我知道自己实现它相当容易,但我想知道是否有更好的方法。谢谢。
个人研究:
- DOM events :为
document
对象创建并从chrome.events
对象创建 - ojit_code :显示界面,但不解释如何创建自定义事件
- Chrome events:它确实展示了如何向现有事件添加规则,但不展示如何创建您自己的自定义事件。
最佳答案
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 的对象。 .
关于javascript - 在 Chrome 扩展程序中创建自定义事件的最惯用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36907760/