Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript禁用上下文菜单(右键单击)_Javascript_Contextmenu_Right Click - Fatal编程技术网

使用Javascript禁用上下文菜单(右键单击)

使用Javascript禁用上下文菜单(右键单击),javascript,contextmenu,right-click,Javascript,Contextmenu,Right Click,我想禁用表上的右键单击菜单。因为我用右键点击来改变它的颜色(做了一个小的战舰游戏)。然而,我没有发现任何仍然有效的东西。因此,我非常感谢您的回答:) 这是电话: <td class="tdBox" onclick="attack(this, ${xStatus.count}, ${yStatus.count})" onmouseover="background(this)" onmouseout="backgroundLeave(this)" oncontextmenu="markFiel

我想禁用表上的右键单击菜单。因为我用右键点击来改变它的颜色(做了一个小的战舰游戏)。然而,我没有发现任何仍然有效的东西。因此,我非常感谢您的回答:)

这是电话:

<td class="tdBox" onclick="attack(this, ${xStatus.count}, ${yStatus.count})" onmouseover="background(this)" onmouseout="backgroundLeave(this)" oncontextmenu="markField(this)">
试试这个代码

<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)">

函数标记字段(obj)
{
if(event.button==2)
{
//在这里添加您的代码
obj.style.backgroundColor='蓝色';
返回false;
}
}

以下是如何覆盖
上下文菜单
事件处理程序:

document.addEventListener("contextmenu", function(e) {
  e.preventDefault();
  alert('Right click');

  // Or, in you case: markField()
});
注意:不要求使用
文档
。它将在任何DOM节点上工作。或者,您可以通过检查
e
的目标来设置阻塞条件


Fiddle:

看起来像是从发布的链接中获取代码的部分副本。在该模式下,替换
警报(状态)按您的颜色更改代码行。另外,我建议不要使用右键点击输入,因为这在web应用程序上从来都不是一个好主意;但它不起作用。会出现什么错误?还有,哪个浏览器?某些浏览器不允许禁用右键单击。编辑:在控制台中检查JS是否抛出错误。这部分起作用,因为我不想在整个站点上禁用右键单击。然而,我通过使用getElementsByClassName找到了一个基于此的解决方案
函数disableRightClick(){var tdBox=document.getElementsByClassName(“tdBox”);for(i=0;i
是的,它将在任何DOM节点上工作,而不仅仅是
文档
document.addEventListener("contextmenu", function(e) {
  e.preventDefault();
  alert('Right click');

  // Or, in you case: markField()
});