【问题标题】:Adding copy & paste functionalities to a custom menu of a webapp将复制和粘贴功能添加到 web 应用程序的自定义菜单
【发布时间】:2013-09-13 00:45:18
【问题描述】:

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

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

谁能指出一个有效的替代方法?

谢谢。

【问题讨论】:

    标签: javascript html menu contextmenu


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      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 当前所做的是显示一个模式,告诉您使用键盘命令:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多