Microsoft Edge browser how to read Clipboard data

做~自己de王妃 提交于 2019-12-12 09:41:12

问题


I am unable to read clipboard data in Microsoft Edge browser. i am using the below javascript.

if (window.clipboardData && window.clipboardData.getData) { // IE
       pastedText = window.clipboardData.getData('Text');
 } else if (e.clipboardData && e.clipboardData.getData) {   //non-IE
       pastedText = e.clipboardData.getData('text/plain');
 }

Non of the if/elseif block is executed in Edge. I tried using

e.originalEvent.clipboardData.getData('text/plain');

But I am getting 'Access is denied.' error.

Let me know, if anybody know how to fix this issue.


回答1:


Edge does not currently support the clipboard api, but it is under consideration and likely to be added in near future.




回答2:


I do not have edge, but it seems that you are not authorized to access the clipboard data. Is this on a website or are you calling this from within a JavaScript script executed locally?

Make sure the website is in the trusted sites.

See https://w3c.github.io/clipboard-apis/#clipboard-event-interfaces, or more precisely:

12.1 Privacy concerns

Untrusted scripts should not get uncontrolled access to a user's clipboard data. This specification assumes that granting access to the current clipboard data when a user explicitly initiates a paste operation from the user agent's trusted chrome is acceptable. However, implementors must proceed carefully, and as a minimum implement the precautions below:

Objects implementing the DataTransfer interface to return clipboard data must not be available outside the ClipboardEvent event handler. If a script stores a reference to an object implementing the DataTransfer interface to use from outside the ClipboardEvent event handler, all methods must be no-ops when called outside the expected context. Implementations must not let scripts create synthetic clipboard events to get access to real clipboard data except if configured to do so. Implementations should not let scripts call document.execCommand('paste') unless the user has explicitly allowed it.

Implementations may choose to further limit the functionality provided by the DataTransfer interface. For example, an implementation may allow the user to disable this API, or configure which web sites should be granted access to it.



来源:https://stackoverflow.com/questions/32113086/microsoft-edge-browser-how-to-read-clipboard-data

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!