【问题标题】:Microsoft Edge browser how to read Clipboard dataMicrosoft Edge 浏览器如何读取剪贴板数据
【发布时间】:2018-11-28 15:39:46
【问题描述】:

我无法在 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');
 }

没有 if/elseif 块在 Edge 中执行。我尝试使用

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

但我收到“访问被拒绝”。错误。

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

【问题讨论】:

    标签: clipboard microsoft-edge


    【解决方案1】:

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

    【讨论】:

    • 您能否提供一个链接或其他您了解到在不久的将来会添加的内容? Edge 的开发路线图什么的。
    • 太棒了。您最初的答案是在 2015 年,4 年后边缘仍然不支持剪贴板 API。现在你们将使用铬制作边缘,这很好。顺便说一句,我认为您应该在答案中添加您在边缘工作,作为 PS 或其他东西。
    【解决方案2】:

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

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

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

    12.1 隐私问题

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

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

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

    【讨论】:

    • 我在我的网站上使用这个 javascript,目前,我正在本地测试它。
    猜你喜欢
    • 2011-07-29
    • 1970-01-01
    • 2011-01-11
    • 2021-02-07
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多