我有这个代码来禁用上下文菜单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 中不起作用。我改用了文档,它可以工作,但我不想禁用文本框和其他元素的上下文菜单。我怎样才能做到这一点?
不要建议我不要使用它。这是一个客户项目,这是一个要求。