在JavaScript中复制/粘贴?
我知道这个问题被问像一百万次通过了,但我真的无法找到一个很好的跟上时代的解决方案。在JavaScript中复制/粘贴?
我已经实现了我自己的菜单,以便用户能够剪切,复制和粘贴到我的WebApp中。 但我不确定如何在Firefox,IE,Safari/Chrome上使用剪贴板。
谢谢你的帮助。
没有ü尝试: http://ericphan.info/development/cross-browser-copy-and-paste-with-jquery-copy/
UPDATE: 链接不可用,所以我将内容从缓存中复制:
场景
我工作的SSW当客户端项目客户在网络应用程序中报告了一个错误。
该缺陷涉及当你选择了多个员工认为得到了更新,动态生成的邮寄地址链接。当他选择超过10名员工发送电子邮件时,客户报告了一个错误。他的Lotus Notes邮件客户端弹出一个错误说:
错误处理命令行参数
测试此我自己,我发现Outlook 2007中可以很容易的邮寄地址链接支持前30-40名员工的电子邮件停止工作。 原因
事实证明,mailto规范有一个限制,邮件客户端也有一个限制。 Lotus Notes只能处理mailto链接中的240个字符,而其他现代邮件客户端(如Outlook 2007)则支持2083个字符 - URL的最大长度
这解释了测试中的差异。 的修复 - JQuery的救援
因为这是我们需要另一种解决方案,以满足“我希望能够选择多个员工和发送电子邮件到所有这些”客户的要求HTML规范的限制
我们可以创建一个使用SMTP发送电子邮件的电子邮件表格 - 但客户端希望将Lotus Notes用作其邮件客户端。
我们最终更改了“电子邮件”按钮,将所有电子邮件(逗号分隔)复制到剪贴板,并弹出打开一个新的电子邮件窗口。客户所要做的只是按CTRL + V并将电子邮件粘贴到TO字段中。这是最快和最具成本效益的解决方案,使客户能够灵活地使用自己的电子邮件客户端。
有一个名为jquery.copy的JQuery插件,它使用flash(swf)文件提供跨浏览器的复制和粘贴。这与我博客上的语法突出显示器的工作原理类似。
一旦你引用jquery.copy.js文件中的所有你需要做的将数据推到剪贴板中运行以下命令:
$.copy("some text to copy");
尼斯和容易;)
注意:您可能需要更改jquery.copy中SWF文件的路径。js得到这个工作
我刚写了一个详细的技术blog post关于这个问题(我为Lucidchart工作,我们最近对剪贴板做了一次大修)。包含在该帖子中的是this fiddle,这是一个通过Javascript复制和粘贴的实例。
好消息是,这个例子给你设置/获取每当用户使用剪贴板热键任何支持剪贴板中的数据类型的工作代码。
坏消息是,使用自己的上下文菜单进行复制和粘贴是有问题的。即使谷歌也无法避开(尝试使用上下文菜单复制或粘贴到Firefox中的Google文档中)。您将能够在IE中无需太多麻烦的情况下工作。这是因为你可以随时从Javascript通过访问clipboardData对象:
window.clipboardData
(当你试图做这个系统的剪切,复制或粘贴事件之外,但是,IE浏览器会提示用户授予)
在Chrome中,您可以创建一个Chrome扩展,它将为您的Web应用程序clipboard permissions(这是我们为Lucidchart执行的操作)。然后为用户提供您的扩展安装,你就只需要自己触发系统事件,当他们点击菜单选项:
document.execCommand('copy');
它看起来像Firefox有some options,允许用户将权限授予某些网站的访问剪贴板,但我还没有尝试任何这些个人。
而且,从该博客文章中,zeroclipboard看起来不错 - http://code.google.com/p/zeroclipboard/ – 2009-12-23 09:58:21
丹感谢您的评论:) – 2009-12-23 11:10:08
它似乎覆盖了复制到剪贴板,但我真的需要从剪贴板粘贴的功能... – thedp 2009-12-23 11:18:31