如何在跨浏览器中读取剪贴板数据?

Posted

技术标签:

【中文标题】如何在跨浏览器中读取剪贴板数据?【英文标题】:How to read clipboard data in cross browser? 【发布时间】:2011-07-29 21:50:32 【问题描述】:

可能的重复:Copy / Put text on the clipboard with FireFox, Safari and ChromeHow to Copy to Clipboard in javascript?

你好,

场景:我复制了一些内容(从记事本或 word 中)并想将其粘贴到我的 iframe 中。在粘贴之前我想操作剪贴板内容。 在 IE 中,我可以使用 window.clipboardData.getData("Text"); 如何在其他浏览器(FF/chrome 和 safari)中读取剪贴板数据

【问题讨论】:

@David, @Crowder:这两个问题无疑与这个问题相似,但都涉及将数据放到剪贴板上而不是从中读取数据。 @David, @Crowder:这可能是这个问题的重复:***.com/questions/233719/… Jesus christ SO 非常需要调整模组。这两个被标记为受骗的问题根本不是同一个问题。 【参考方案1】:

只有在用户显式触发粘贴时(例如,通过使用 Ctrl-V 或编辑或上下文),您才能在大多数浏览器中执行此操作菜单)。

在 Firefox 和 Opera 中,您需要使用 hack,例如我在此处概述的那个:JavaScript get clipboard data on paste event (Cross browser)。

在 Internet Explorer、Safari 和 Chrome 中,您可以在粘贴期间使用 IE 中的 window.clipboardData 和 WebKit 中的 paste 事件的 clipboardData 属性直接访问剪贴板。更多信息请访问Apple developer site。

【讨论】:

【参考方案2】:

火狐的情况

默认情况下,不允许使用 JavaScript 读取或设置剪贴板数据 安全和隐私原因。这是 因为网站脚本可以擦除和 替换你目前拥有的 您的剪贴板(数据丢失问题)和 他们可以阅读您所拥有的任何内容 您的剪贴板(安全和隐私 问题)

From Here

【讨论】:

现在 Document.execCommand('paste') read there

以上是关于如何在跨浏览器中读取剪贴板数据?的主要内容,如果未能解决你的问题,请参考以下文章

在跨浏览器测试期间同步用户输入

JavaScript 在粘贴事件中获取剪贴板数据(跨浏览器)

JavaScript在粘贴事件上获取剪贴板数据(跨浏览器)

跨浏览器剪贴蒙版

即使在跨多个组件路由之后,如何在 Electron 驱动的 React 应用程序中处理持久数据、函数和任务?

使用JavaScript读取所选文本并将其复制到剪贴板