是否可以在canvas元素上禁用上下文菜单?

时间:2011-08-25 20:36:21

标签: javascript jquery html

我正在使用jqPlot在div标签内创建图表。 jqPlot使用canvas元素来渲染图形。我正在尝试为图形添加一些交互性,即缩放,用户可以分别使用鼠标左键和右键进行放大和缩小。我想在用户右键单击图表时禁用上下文菜单。我尝试了几种方法,包括......

将oncontextmenu属性添加到包含图形画布的父div:

<div id="myGraph" style="width: 908px; height: 600px; " class="jqplot-target" align="center" oncontextmenu="return false"></div>

在jqPlot呈现图形后,动态地将oncontextmenu参数应用于所有子项:

//Code to render the graph
//...
$("#myGraph").children().attr("oncontextmenu", "return false");

使用jQuery的方法而不是常规的JS:

$("#myGraph").children().bind("contextmenu",function(e){
        return false;
    });

使用此great网站的自定义插件,并按如下方式应用其禁用功能:

$("#plot_testEventHistogram").children().disableContextMenu();

但是这些方法似乎都不起作用,当我右键单击图形时,我仍然会得到一个上下文菜单。它不是一个showstopper,但非常烦人,如果可以有效禁用它会很好

1 个答案:

答案 0 :(得分:11)

canvas.oncontextmenu = function() {
    return false;
}

http://jsfiddle.net/9ZWv2/

适用于Chrome