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