如何在js中阻止鼠标右键单击菜单并在鼠标右键单击时显示工具提示
How to Block Mouse right click menu and show tooltip on mouse right click in js
我需要在我的网站上用鼠标右键单击我的图像时隐藏上下文菜单,并且需要在用户右键单击图像时显示工具提示
我找到了阻止右键单击操作的解决方案。下面给出了
<body oncontextmenu="return false;">
现在我需要在用户右键单击图像时显示工具提示。
提前致谢;)
好吧,您需要在图像上定义事件侦听器以更改行为。我建议您需要调用 `event.stopPropagation 来阻止您在 body 上定义的侦听器工作。它应该工作,因为 JS 中的事件正在冒泡,所以它们首先触发最内部的元素,然后触发外部元素。
可以这样看
image.addEventListener("contextmenu", (event) => {
event.stopPropagation();
// some other code that you want to implement.
});
这里的image
只是一个HTML元素,你可以通过querySelector
得到。更高级的解决方案会有以下方式。
body.addEventListener("contextmenu", (event) => {
if (event.target.tagName.toLowerCase() !== 'img') {
return false;
}
});
然后您将需要删除 HTML 中定义的 oncontextmenu
侦听器。上面的代码将禁用任何不在 img
标签上发生的点击的上下文。
我需要在我的网站上用鼠标右键单击我的图像时隐藏上下文菜单,并且需要在用户右键单击图像时显示工具提示
我找到了阻止右键单击操作的解决方案。下面给出了
<body oncontextmenu="return false;">
现在我需要在用户右键单击图像时显示工具提示。
提前致谢;)
好吧,您需要在图像上定义事件侦听器以更改行为。我建议您需要调用 `event.stopPropagation 来阻止您在 body 上定义的侦听器工作。它应该工作,因为 JS 中的事件正在冒泡,所以它们首先触发最内部的元素,然后触发外部元素。
可以这样看
image.addEventListener("contextmenu", (event) => {
event.stopPropagation();
// some other code that you want to implement.
});
这里的image
只是一个HTML元素,你可以通过querySelector
得到。更高级的解决方案会有以下方式。
body.addEventListener("contextmenu", (event) => {
if (event.target.tagName.toLowerCase() !== 'img') {
return false;
}
});
然后您将需要删除 HTML 中定义的 oncontextmenu
侦听器。上面的代码将禁用任何不在 img
标签上发生的点击的上下文。