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

How can I keep the orginal copy and paste function if I create a right click menu?

本文关键字:原始 保留 复制 功能 右键 创建 单击 菜单 何保留 如果      更新时间:2023-09-26

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

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

我会回应上面的一些评论,并建议您尽可能不要替换现有菜单。但是,在 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/