模拟按键(ctrl + v)并将KeyboardEvent发送到Angular2或JavaScript中的div

时间:2017-04-28 10:53:32

标签: javascript angular

我有一个div:

<div class="paste-area-content"
  #pasteDiv contenteditable="true" 
  (paste)="onPaste($event)"
  (input)="unsupportedBrowserPaste()">
</div>

如果焦点在于它,我按 Ctrl + V ,然后使用onPaste等调用ClipboardEvent函数,剪贴板中的图片显示在div

现在我想使用<button>来执行相同的过程。所以我想我会在点击按钮时模拟keypress,然后将KeyboardEvent发送到div。

我尝试了很多类似的解决方案,但没有一个有效,或者他们只是被弃用了。最后一次尝试是:

var event = new KeyboardEvent('keypress', {
  bubbles: true,
  cancelable: true,
  ctrlKey: true,
  key : "v",
  code : "86"
});
this.printedArticleImagePasteComponent.simulatePaste(event);

public simulatePaste(event: KeyboardEvent) {
  this.pasteDiv.nativeElement.dispatchEvent(event);
}

当然没有用。怎么可能解决这个问题?

第二个想法是:从剪贴板中获取图片,手动创建ClipboardEvent,设置ClipboardEvent.clipboardData.items。但window.clipboardData.getData无效。

0 个答案:

没有答案