使用 Javascript 禁用上下文菜单(右键单击)
Disable Context Menu (Right click) with Javascript
我想禁用 table 上的右键菜单。因为我使用右键单击来更改它的颜色(做了一个小战舰游戏)。但是我没有发现任何仍然有效的东西。所以非常感谢您的回答:)
这是电话:
<td class="tdBox" onclick="attack(this, ${xStatus.count}, ${yStatus.count})" onmouseover="background(this)" onmouseout="backgroundLeave(this)" oncontextmenu="markField(this)">
这是 JavaScript 函数:
function markField(obj) {
obj.style.backgroundColor = 'blue';
//return false;
}
试试这个代码
<script language="javascript">
function markField(obj)
{
if(event.button==2)
{
//add your code here
obj.style.backgroundColor = 'blue';
return false;
}
}
</script>
<td class="tdBox" onclick="attack(this, ${xStatus.count}, ${yStatus.count})"
onmouseover="background(this)" onmouseout="backgroundLeave(this)"
oncontextmenu="markField(this)">
以下是覆盖 contextmenu
事件处理程序的方法:
document.addEventListener("contextmenu", function(e) {
e.preventDefault();
alert('Right click');
// Or, in you case: markField()
});
注意:使用 document
不是必需的。它适用于任何 DOM 节点。或者,您可以通过检查 e
.
的目标来使阻塞有条件
Fiddle: https://jsfiddle.net/h1jdr1ew/1/
我想禁用 table 上的右键菜单。因为我使用右键单击来更改它的颜色(做了一个小战舰游戏)。但是我没有发现任何仍然有效的东西。所以非常感谢您的回答:)
这是电话:
<td class="tdBox" onclick="attack(this, ${xStatus.count}, ${yStatus.count})" onmouseover="background(this)" onmouseout="backgroundLeave(this)" oncontextmenu="markField(this)">
这是 JavaScript 函数:
function markField(obj) {
obj.style.backgroundColor = 'blue';
//return false;
}
试试这个代码
<script language="javascript">
function markField(obj)
{
if(event.button==2)
{
//add your code here
obj.style.backgroundColor = 'blue';
return false;
}
}
</script>
<td class="tdBox" onclick="attack(this, ${xStatus.count}, ${yStatus.count})"
onmouseover="background(this)" onmouseout="backgroundLeave(this)"
oncontextmenu="markField(this)">
以下是覆盖 contextmenu
事件处理程序的方法:
document.addEventListener("contextmenu", function(e) {
e.preventDefault();
alert('Right click');
// Or, in you case: markField()
});
注意:使用 document
不是必需的。它适用于任何 DOM 节点。或者,您可以通过检查 e
.
Fiddle: https://jsfiddle.net/h1jdr1ew/1/