如果创建右键菜单,如何保留原始复制和粘贴功能?

时间:2014-12-30 21:17:28

标签: javascript copy-paste

我刚开始学习右键菜单。
我想将它用于一些基本的功能,如youtube搜索,图像搜索等 但问题是,当我覆盖默认的浏览器右键菜单时,我可以说再见复制和粘贴功能,而且我知道最好,我无法保留它。
我听说过一些jquery javascript插件,它可以做复制和粘贴功能,但问题不是太安全,而且总是不能正常工作,浏览器安全策略也总是会改变,所以这不是我能保持这个功能的最好方法。
知道如何使用默认的复制和粘贴选项创建自己的javascript菜单吗?

1 个答案:

答案 0 :(得分:1)

正如您所指出的,大多数解决方案使用类似于"隐藏"用于处理来自JavaScript的剪贴板交互的Flash对象。这是因为虽然您可以在所有浏览器中创建ClipboardEvent,但在文档上触发它将无效或导致错误。影响剪贴板仍然是沙盒行为。

我会回应上面的一些评论,并建议您尽可能不替换现有的菜单。但是在Firefox和其他浏览器中添加了对它的支持,有一种解决方法可以将菜单项添加到现有的上下文菜单中:

<menu type="context" id="mymenu">
  <menuitem label="Do something" id="something"></menuitem>
</menu>
<div contextmenu="mymenu">
    Any context menu in this element will have the items added to it from mymenu.
</div>

菜单项的事件可以这样处理:

document.getElementById("something").addEventListener("click", function () { ... });

这个规范可能仍在进行中,Firefox的实施并不完全符合规范。但是,目前它确实可以作为一种添加自己的项目并保留现有上下文菜单的方式。

实例:http://jsfiddle.net/1ehtfjz6/5/