我无法在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');
但我得到'访问被拒绝'。错误。
如果有人知道如何解决这个问题,请告诉我。
答案 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,或配置应授予哪些网站访问权限。