根据this question的回答,我尝试禁用默认浏览器上下文菜单,而是显示自定义菜单。正如您在此jsfiddle中看到的那样,右键单击会显示rect,但会显示默认菜单。我试过Chrome和IE,行为是一样的。这段代码有什么问题?
这是HTML:
<div id="canvas"></div>
这是CSS:
#canvas {
width: 500px;
border: 1px solid #aaa;
}
和Javascript:
var menu = null;
var paper = new Raphael(document.getElementById('canvas'), 500, 500);
var rect2 = paper.rect(100, 100, 180, 180 ).attr({"fill" : "green" });
rect2.node.oncontextmenu = function(){ return false; }
rect2.mousedown(function(e) {
if ( e.which != 3 ) // only allow right click
return;
menu = paper.rect ( e.offsetX, e.offsetY, 100, 100).attr({stroke: '#000000', fill:'#c2c2c2',"stroke-width":1});
});
答案 0 :(得分:1)
您必须取消默认操作
function eventHandler(e){
e = e || window.event;
if(e.stopPropagation)
e.stopPropagation();
if(e.preventDefault)
e.preventDefault();
e.cancelBubble = false;
return false;
}