我有一个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
无效。