我正在尝试浅黑克隆一个KeyboardEvent事件。我试过了:
let eclone=new KeyboardEvent('', e);
复制了大多数但不是所有属性。特别是,它没有复制当前目标'或者'目标'特性
我试图添加:
eclone.currentTarget=e.currentTarget;
但是这会引发“无法分配给只读属性' currentTarget'对象#'
如何克隆此活动?我可以以某种方式暂时删除eclone.currentTarget上的只读吗?
答案 0 :(得分:1)
您可以使用EventTarget.dispatchEvent()
作为参数传递创建的event
。注意,传递给KeyboardEvent
的第一个参数应该是一个表示事件名称的字符串。
var e = new KeyboardEvent("keydown", {key:"g"});
window.addEventListener("keydown", function(event) {
if (!event.isTrusted) {
console.log(event.target === window);
document.body.textContent = e.key;
}
});
// set `event.target` of `e` to `window`
window.dispatchEvent(e);