如何在我的网络应用程序中获得右键单击事件
How do I get a right click event in my web app
我不想禁用右键单击。我想让它对我的应用程序可见。当我右键单击时,事件永远不会到达我的网络应用程序,而是被浏览器本身捕获。我希望有一种简单的方法可以告诉 Chrome 或 Safari 不要这样做,并让右键单击进入应用程序本身。人们指导我了解 javascript 使用上下文菜单功能的方式。这不是我需要的。右键单击似乎由 Chrome 本身处理,永远不会进入我的应用程序。
不确定 "javascript contextmenu" 是什么意思,但这应该可以完成工作:
(运行 片段并右键单击黑框)
let testEl = document.getElementById('test');
testEl.addEventListener('contextmenu', function(e) {
if(e && e.preventDefault) e.preventDefault();
alert("Right click!");
});
#test {
width: 100px;
height: 100px;
background: black;
}
<div id="test"></div>
我非常怀疑 Chrome 会阻止您这样做。如果它不工作,很可能是应用程序中的某些东西在干扰。
如How can I capture the right-click event in JavaScript?中所述,您可以捕获右键单击事件,而无需像这样处理上下文菜单:
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
}
我不想禁用右键单击。我想让它对我的应用程序可见。当我右键单击时,事件永远不会到达我的网络应用程序,而是被浏览器本身捕获。我希望有一种简单的方法可以告诉 Chrome 或 Safari 不要这样做,并让右键单击进入应用程序本身。人们指导我了解 javascript 使用上下文菜单功能的方式。这不是我需要的。右键单击似乎由 Chrome 本身处理,永远不会进入我的应用程序。
不确定 "javascript contextmenu" 是什么意思,但这应该可以完成工作:
(运行 片段并右键单击黑框)
let testEl = document.getElementById('test');
testEl.addEventListener('contextmenu', function(e) {
if(e && e.preventDefault) e.preventDefault();
alert("Right click!");
});
#test {
width: 100px;
height: 100px;
background: black;
}
<div id="test"></div>
我非常怀疑 Chrome 会阻止您这样做。如果它不工作,很可能是应用程序中的某些东西在干扰。
如How can I capture the right-click event in JavaScript?中所述,您可以捕获右键单击事件,而无需像这样处理上下文菜单:
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
}