【问题标题】:Raphael: disable default context menu on right click not workingRaphael:右键单击时禁用默认上下文菜单不起作用
【发布时间】:2014-05-14 12:04:39
【问题描述】:

按照this question 的答案,我正在尝试禁用默认浏览器上下文菜单并改为显示自定义菜单。正如您在jsfiddle 中看到的那样,右键单击会显示矩形,但会显示默认菜单。我尝试使用 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});
    });

【问题讨论】:

    标签: javascript raphael


    【解决方案1】:

    您必须取消默认操作

    function eventHandler(e){
        e = e || window.event;
    
        if(e.stopPropagation)
            e.stopPropagation();
        if(e.preventDefault)
            e.preventDefault();
        e.cancelBubble = false;
    
        return false;
    }
    

    http://jsfiddle.net/8Zy3F/3/

    http://jsfiddle.net/tSGC5/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多