我知道这个问题现在已经被问了一百万次了,但我真的找不到一个好的最新解决方案。
我已经实现了我自己的菜单,为用户提供剪切、复制和粘贴到我的 Web 应用程序中的能力。
但我不确定如何在 Firefox、IE、Safari/Chrome 上实际使用剪贴板。
感谢您的帮助。
最佳答案
我刚刚写了详细的技术blog post关于这个主题(我为 Lucidchart 工作,我们最近对剪贴板进行了大修)。包含在帖子中的是 this fiddle这是通过 Javascript 复制和粘贴的工作示例。
好消息是,当用户使用剪贴板热键时,此示例为您提供了用于设置/获取任何受支持的剪贴板数据类型的工作代码。
坏消息是,使用您自己的上下文菜单进行复制和粘贴是有问题的。甚至 Google 也无法解决这个问题(尝试在 Firefox 的 Google Docs 中使用上下文菜单复制或粘贴)。您将能够在 IE 中使用它而不会遇到太多麻烦。这是因为您可以通过以下方式随时从 Javascript 访问 clipboardData 对象:
window.clipboardData
(但是,当您尝试在系统剪切、复制或粘贴事件之外执行此操作时,IE 将提示用户授予 Web 应用程序剪贴板权限。)
在 Chrome 中,您可以创建一个 chrome 扩展程序,为您的网络应用程序提供 clipboard permissions (这就是我们为 Lucidchart 所做的)。然后对于安装了扩展程序的用户,当他们单击菜单选项时,您只需要自己触发系统事件:
document.execCommand('copy');
看起来 Firefox 有 some options允许用户授予某些站点访问剪贴板的权限,但我个人没有尝试过任何这些。
关于cross-browser - 在 JavaScript 中复制/粘贴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1951762/