Bra*_*ley 4 javascript microsoft-edge
在我们的应用程序中,我们有一个自定义粘贴函数,它调用 window.clipboardData.getData("Text") 来获取当前剪贴板数据。然后它对该数据执行一些功能。在 Edge 中,window.clipboardData 未定义。看起来 getData 在“粘贴”事件中使用时确实有效,如下所示。
document.addEventListener("paste", function(e) {
var test = e.clipboardData.getData("text/plain");
});
Run Code Online (Sandbox Code Playgroud)
我可能可以设计一种解决方法,涉及覆盖粘贴事件,但这并不理想。可以在事件外部调用的解决方案会更好。
顺便说一句,我读到 Edge 一度不支持剪贴板 API,但我的理解是这是固定的,所以请找到一些专门支持当前功能的东西(e.clipboardData 工作但不等同于 window.clipboardData 存在,如果这就是你的答案。
像所有现代浏览器一样,Edge 使用官方ClipboardEvent::clipboardData:
\n\ninp.onpaste = evt =>\r\n console.log(evt.clipboardData.getData(\'text\'));Run Code Online (Sandbox Code Playgroud)\r\n<input id="inp">Run Code Online (Sandbox Code Playgroud)\r\n随它去吧。已弃用且非标准的window::clipboardData只能用作旧版本 IE 的遗留支持手段。
\n\n至于您想要做什么(在没有用户交互的情况下粘贴),这违反了隐私规范建议。您将无法通过网络内容进行操作。您需要从高权限脚本(例如扩展)运行脚本。
\n\n\n\n\xe2\x80\xa2 实现不得让脚本创建合成剪贴板事件来访问真实的剪贴板数据(除非用户已将其配置为这样做)。
\n