我知道这个问题现在已经被问了一百万次了,但我真的找不到一个好的最新解决方案。
我已经实现了自己的菜单,为用户提供剪切、复制和粘贴到我的 WebApp 的能力。但我不确定如何在 Firefox、IE、Safari/Chrome 上实际使用剪贴板。
感谢您的帮助。
我知道这个问题现在已经被问了一百万次了,但我真的找不到一个好的最新解决方案。
我已经实现了自己的菜单,为用户提供剪切、复制和粘贴到我的 WebApp 的能力。但我不确定如何在 Firefox、IE、Safari/Chrome 上实际使用剪贴板。
感谢您的帮助。
我刚刚就这个主题写了一篇详细的技术博客文章(我为 Lucidchart 工作,我们最近对剪贴板进行了大修)。帖子中包含这个小提琴,它是通过 Javascript 复制和粘贴的工作示例。
好消息是,当用户使用剪贴板热键时,此示例为您提供了用于设置/获取任何支持的剪贴板数据类型的工作代码。
坏消息是使用您自己的上下文菜单进行复制和粘贴是有问题的。甚至 Google 也无法解决这个问题(尝试在 Firefox 的 Google Docs 中使用上下文菜单复制或粘贴)。您将能够在 IE 中毫不费力地让它工作。这是因为您可以随时通过 Javascript 通过以下方式访问 clipboardData 对象:
window.clipboardData
(但是,当您尝试在系统剪切、复制或粘贴事件之外执行此操作时,IE 将提示用户授予 Web 应用程序剪贴板权限。)
在 Chrome 中,您可以创建一个 chrome 扩展程序,该扩展程序将授予您的网络应用剪贴板权限(这就是我们为 Lucidchart 所做的)。然后对于安装了您的扩展程序的用户,您只需要在他们单击菜单选项时自己触发系统事件:
document.execCommand('copy');
看起来 Firefox 有一些选项允许用户授予某些网站访问剪贴板的权限,但我个人没有尝试过这些。
你试过了吗: http: //ericphan.info/development/cross-browser-copy-and-paste-with-jquery-copy/
更新:链接不可用,所以我从缓存中复制内容:
情景
当客户报告 Web 应用程序中的错误时,我正在为 SSW 开发一个客户项目。
该错误涉及动态生成的 mailto 链接,当您选择多个员工时该链接会更新。客户在选择超过 10 名员工发送电子邮件时报告错误。他的 Lotus Notes 邮件客户端弹出一条错误消息:
处理命令行参数时出错
我自己对此进行了测试,发现 Outlook 2007 可以在 mailto 链接停止工作之前轻松支持 30-40 名员工的电子邮件。原因
事实证明,mailto 规范有一个限制,而邮件客户端也有一个限制。Lotus Notes 仅处理 mailto 链接中的 240 个字符,而其他现代邮件客户端(如 Outlook 2007)支持 2083 个字符 - URL 的最大长度
这解释了测试中的差异。修复 - JQuery 来拯救
由于这是 HTML 规范的限制,我们需要另一种解决方案来满足客户“我希望能够选择多个员工并向所有员工发送电子邮件”的要求</p>
我们本可以创建一个使用 SMTP 发送电子邮件的电子邮件表单 - 但客户希望使用 Lotus Notes 作为他的邮件客户端。
我们最终更改了“电子邮件”按钮以将所有电子邮件(逗号分隔)复制到剪贴板并弹出一个新的电子邮件窗口。客户所要做的就是按 CTRL + V 并将电子邮件粘贴到 TO 字段中。这是最快、最具成本效益的解决方案,让客户可以灵活地使用自己的电子邮件客户端。
有一个名为 jquery.copy 的 JQuery 插件,它通过使用 flash (swf) 文件提供跨浏览器复制和粘贴。这类似于我博客上的语法荧光笔的工作方式。
引用 jquery.copy.js 文件后,将数据推送到剪贴板所需要做的就是运行以下命令:
$.copy("some text to copy");
好,易于 ;)
注意:您可能需要更改 jquery.copy.js 中的 SWF 文件的路径才能使其正常工作