Javascript 如何在我的web应用程序中获得右键单击事件

Javascript 如何在我的web应用程序中获得右键单击事件,javascript,contextmenu,Javascript,Contextmenu,我不想禁用右键单击。我想让它对我的应用程序可见。当我右键单击事件时,它永远不会进入我的web应用程序,并且会被浏览器本身捕获。我希望有一个简单的方法告诉Chrome或Safari不要这样做,让右键点击进入应用程序本身。人们向我介绍了javascript使用contextmenu功能的方式。这不是我需要的。右键单击似乎是由Chrome本身处理的,永远不会进入我的应用程序。不确定“javascript contextmenu”是什么意思,但这应该可以完成以下工作: (运行代码段并右键单击黑框) l

我不想禁用右键单击。我想让它对我的应用程序可见。当我右键单击事件时,它永远不会进入我的web应用程序,并且会被浏览器本身捕获。我希望有一个简单的方法告诉Chrome或Safari不要这样做,让右键点击进入应用程序本身。人们向我介绍了javascript使用contextmenu功能的方式。这不是我需要的。右键单击似乎是由Chrome本身处理的,永远不会进入我的应用程序。

不确定“javascript contextmenu”是什么意思,但这应该可以完成以下工作:

(运行代码段并右键单击黑框)

let testEl=document.getElementById('test');
testEl.addEventListener('contextmenu',函数(e){
如果(e&&e.preventDefault)e.preventDefault();
警报(“右键单击!”);
});
#测试{
宽度:100px;
高度:100px;
背景:黑色;
}
如中所述,您可以捕获右键单击事件,而无需像下面这样处理上下文菜单:

function rightclick() {
    var rightclick;
    var e = window.event;
    if (e.which) rightclick = (e.which == 3);
    else if (e.button) rightclick = (e.button == 2);
    alert(rightclick); // true or false, you can trap right click here by if comparison
}

这个示例使我最终看到,浏览器中的上下文菜单处理取决于web应用程序的javascript代码中是否实际存在该上下文菜单的处理程序。谢谢你的简单测试。可能是其他人早些时候提供了相同的信息,但我并不欣赏这些信息的价值。