首页 > 解决方案 > Microsoft Edge 中是否有与 window.clipboardData 等效的内容?

问题描述

在我们的应用程序中,我们有一个自定义粘贴函数,它调用 window.clipboardData.getData("Text") 来获取当前剪贴板数据。然后它对这些数据执行一些功能。在 Edge 中,window.clipboardData 未定义。getData 在“粘贴”事件中使用时似乎确实有效,如下所示。

document.addEventListener("paste", function(e) {
    var test = e.clipboardData.getData("text/plain");
});

我可能会设计一种解决方法,该解决方法将涉及覆盖粘贴事件,但这并不理想。可以在事件之外调用的解决方案将是更可取的。

顺便说一句,我读到 Edge 有一次不支持剪贴板 API,但我的理解是这是固定的,所以请找到特别支持当前功能的东西(e.clipboardData 工作但不等同于 window.clipboardData 存在 if这就是你的答案。

标签: javascriptmicrosoft-edge

解决方案


Edge 和所有现代浏览器一样使用官方的ClipboardEvent::clipboardData

inp.onpaste = evt =>
  console.log(evt.clipboardData.getData('text'));
<input id="inp">

随它去吧。对于旧版本的 IE,已弃用且非标准的window::clipboardData应仅用作旧版支持的一种手段。

至于你想做什么,(粘贴没有用户交互),这违背了隐私的规范建议。您将无法通过网络内容进行操作。您需要从高权限脚本(如扩展程序)运行脚本。

• 实现不得让脚本创建合成剪贴板事件来访问真实剪贴板数据(除非用户已对其进行配置)。


推荐阅读