克隆一个KeyboardEvent事件,包括currentTarget

时间:2016-09-19 05:47:18

标签: javascript html html5

我正在尝试浅黑克隆一个KeyboardEvent事件。我试过了:

let eclone=new KeyboardEvent('', e);

复制了大多数但不是所有属性。特别是,它没有复制当前目标'或者'目标'特性

我试图添加:

eclone.currentTarget=e.currentTarget;

但是这会引发“无法分配给只读属性' currentTarget'对象#'

如何克隆此活动?我可以以某种方式暂时删除eclone.currentTarget上的只读吗?

1 个答案:

答案 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);