从当前页面之外的系统剪贴板获取最后的“文本”数据

Get last 'Text' Data from system clipboard outside current page

本文关键字:最后的 获取 文本 数据 剪贴板 系统 当前页      更新时间:2023-09-26

到目前为止,所有的答案都集中在捕捉网页内的事件上。但是,是否可以使用javascript检索剪贴板中的最后一个"文本"数据?

我想做的是,当用户单击文本区域时,它会自动将其值更改为系统剪贴板(从任何页面或其他应用程序)中最后复制的元素。

可悲的是,没有简单的方法可以做到这一点。您可以使用 Flash hacks(我个人不认识他们)随时访问剪贴板,但除此之外,您只能在系统剪贴板事件期间访问用户的剪贴板(在您的情况下,阅读剪贴板上的内容)(由键盘快捷键或从浏览器的菜单触发)。

在 IE 中,您可以随时使用以下代码访问剪贴板:

window.clipboardData.getData('Text');

但是,如果不是在系统剪贴板事件期间,系统将提示用户是否要授予你访问权限。

您可以在 Chrome 中使用可授予您的网站/应用剪贴板权限的 chrome 扩展程序来获取解决方法。从那里,您可以使用以下代码强制粘贴事件。

window.execCommand('paste');

这应该会导致粘贴剪贴板上的任何内容(由于选择了文本区域,因此它应该粘贴到文本区域中)。

不过,这可能是你能得到的,除非你想出一种方法让Flash为你做这件事(ZeroClipboard似乎是一个有前途的选择)。

如果你对更多细节感兴趣,我在Lucidchart(我工作的地方)做了大量的工作后,写了一篇关于这个主题的技术博客文章。