添加副本;将功能粘贴到Web应用程序的自定义菜单中

时间:2013-09-09 13:48:54

标签: javascript html5 menu contextmenu

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

我们成功将自定义菜单添加到我们的网络应用中,但我们还没有成功添加副本&粘贴功能,如Google文档中所示。根据我们的理解,这可以使用可以访问OS剪贴板的Flash来实现。但是,我们希望避免使用该技术并使用替代方案 - 我不认为Google也使用Flash。

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

感谢。

3 个答案:

答案 0 :(得分:1)

W3C有Clipboard API的工作草案。 It's not hugely supported yet但它可能在将来有用。您必须仔细查看不支持的内容。 W3C规范的一个例子看起来很简单:

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

article from MDN似乎采用了不同的方法,使用XPCOM Components,但如果我没有弄错,那只能在FireFox中使用。

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

Google Docs clipboard menu modal

就个人而言,我会在关注Clipboard API的同时实现类似的功能。然后,当浏览器开始实现它时,您可以detect its presence and override that modal

答案 1 :(得分:0)

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

如上面的答案所示,你可以在你的应用程序中使用内部模拟剪贴板,但是使用flash完成对Windows应用程序的复制/粘贴。

答案 2 :(得分:0)

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