6

我们正在开发一个包含文本编辑器的 Web 应用程序。它是用 HTML5 + Javascript 编写的。

我们成功地向我们的网络应用程序添加了一个自定义菜单,但我们没有成功地添加复制和粘贴功能,就像在 Google Docs 中一样。据我们了解,这可以使用可以访问操作系统剪贴板的 Flash 来实现。但是,我们希望避免使用该技术并使用替代技术——我认为 Google 也不使用 Flash。

谁能指出我们有效的替代方法?

谢谢。

4

3 回答 3

1

W3C 有一份剪贴板 API的工作草案。它还没有得到很大的支持,但它可能在未来可用。您必须仔细查看不支持的内容。W3C 规范中的一个例子看起来很简单:

var pasteEvent = new ClipboardEvent('paste', { bubbles: true, cancelable: true, dataType: 'text/plain', data: 'My string' } );
document.dispatchEvent(pasteEvent);

MDN 的一篇文章似乎采用了不同的方法,使用XPCOM Components,但如果我没记错的话,那只能在 FireFox 中使用。

但是,meewoK 链接到的答案可能是最好的观点。如果它是一个文本字段,您可以使用标准键盘命令(可能是人们复制/粘贴最常见的方式?)或操作系统的右键菜单(除非您在应用程序中覆盖它)。当您尝试通过“编辑”菜单访问剪贴板命令时,Google Docs 当前所做的是显示一个模式,告诉您使用键盘命令:

Google Docs 剪贴板菜单模式

就个人而言,我会在关注剪贴板 API 的同时实现类似的东西。然后,随着浏览器开始实现它,您可以检测它的存在并覆盖该 modal

于 2013-09-25T18:02:34.680 回答
0

对于 Firefox 和 Chrome,有简单的copy(<insert copy text here>)功能,但据我所知,这仅在 Firefox 和 Chrome 中。对于跨浏览器支持,请使用上面的答案。

于 2013-11-06T04:24:30.390 回答
0

看看以下内容:https ://stackoverflow.com/a/9658362/1688441

与上述答案一样,您可以在应用程序中使用内部模拟剪贴板,但跨 Windows 应用程序的复制/粘贴是通过 Flash 完成的。

于 2013-09-23T15:47:14.710 回答