Microsoft Edge浏览器如何读取剪贴板数据

时间:2015-08-20 08:20:37

标签: clipboard microsoft-edge

我无法在Microsoft Edge浏览器中读取剪贴板数据。我正在使用以下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');
 }

在Edge中执行if / elseif块的非。我尝试使用

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

但我得到'访问被拒绝'。错误。

如果有人知道如何解决这个问题,请告诉我。

2 个答案:

答案 0 :(得分:3)

Edge does not currently support the clipboard api,但它正在考虑中,可能会在不久的将来添加。

答案 1 :(得分:1)

我没有优势,但似乎您无权访问剪贴板数据。这是在网站上还是你在本地执行的JavaScript脚本中调用它?

确保网站位于受信任的网站中。

请参阅https://w3c.github.io/clipboard-apis/#clipboard-event-interfaces,或者更准确地说:

12.1隐私问题

不受信任的脚本不应受到对用户剪贴板数据的不受控制的访问。此规范假定当用户从用户代理的可信任铬中明确启动粘贴操作时,授予对当前剪贴板数据的访问权限是可接受的。但是,实施者必须谨慎行事,并至少采取以下预防措施:

实现DataTransfer接口以返回剪贴板数据的对象不得在ClipboardEvent事件处理程序之外可用。 如果脚本存储对实现DataTransfer接口的对象的引用以在ClipboardEvent事件处理程序外部使用,则在预期上下文之外调用时,所有方法都必须为no-ops。     实现不得让脚本创建合成剪贴板事件以访问真实剪贴板数据,除非配置为执行此操作。     除非用户明确允许,否则实现不应让脚本调用document.execCommand('paste')。

实现可以选择进一步限制DataTransfer接口提供的功能。例如,实现可能允许用户禁用此API,或配置应授予哪些网站访问权限。