我有这段代码禁用div
disableContextMenu = function (e){
if(e.stopPropagation)
e.stopPropagation();
if(e.preventDefault)
e.preventDefault();
e.cancelBubble = true;
return false;
};
clickedElement.oncontextmenu = disableContextMenu;
if(clickedElement.addEventListener){
clickedElement.addEventListener('contextmenu', disableContextMenu, false);
}else if(clickedElement.attachEvent){
clickedElement.attachEvent('oncontextmenu', disableContextMenu);
}
这符合预期。但是当我添加一个mouseup处理程序时,上下文菜单会再次出现。
clickedElement.onmousedown = function (e){
if(e.which == 3){
if(e.stopPropagation)
e.stopPropagation();
if(e.preventDefault)
e.preventDefault();
elementToShow.style.position = 'absolute';
elementToShow.style.left = e.pageX + 'px';
elementToShow.style.top = e.pageY + 'px';
elementToShow.style.display = 'block';
return false;
}
}
这在我的IE9中不起作用。我使用了文档而且它有效,但我不想禁用文本框和其他元素的上下文菜单。我怎么能这样做?
不建议我不要使用它。这是一个客户项目,这是一项要求。
答案 0 :(得分:1)
您也可以检查事件的目标,并且仅当该目标是您不想要它的对象时才禁用上下文菜单。