【发布时间】:2019-02-12 03:53:29
【问题描述】:
我正在开发一个使用事件的应用程序。应用程序的模块在单独的容器中执行,我考虑使用代理来驯服被触发的事件。但是,我似乎无法让 dispatchEvent 接受已代理的事件。
以下失败:
let event = new CustomEvent('my event');
let eventProxy = new Proxy(event, {});
let eventTarget = document.createElement('div');
try {
eventTarget.dispatchEvent(eventProxy); // VM134:4 Uncaught TypeError: Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1 is not of type 'Event'
} catch(error) {
console.log(error.message);
}
有人知道如何让dispatchEvent 接受代理吗?
【问题讨论】:
-
“驯服被触发的事件”是什么意思?
-
根据捕获事件的容器来限制/过滤属性值。
-
new Proxy(event, {})不会创建完全透明的替换对象。不幸的是,你需要做更多的事情来处理它。
标签: javascript ecmascript-6 dom-events dispatchevent es6-proxy