Javascript openlayers2地图右键单击菜单

Javascript openlayers2地图右键单击菜单,javascript,openlayers,Javascript,Openlayers,我想在我的地图上添加一个菜单右键单击时,我尝试了很多方法,但都不起作用。 一种方法像跟随,但不是工作 我将onMapRightClick函数注册为rightclick,但当我右键单击地图时,它没有响应 openlayer event.js中的代码 BROWSER_EVENTS: [ "mouseover", "mouseout", "mousedown", "mouseup", "mousemove", "click", "dblclick", "rightclick

我想在我的地图上添加一个菜单右键单击时,我尝试了很多方法,但都不起作用。 一种方法像跟随,但不是工作 我将onMapRightClick函数注册为rightclick,但当我右键单击地图时,它没有响应

openlayer event.js中的代码

 BROWSER_EVENTS: [
    "mouseover", "mouseout",
    "mousedown", "mouseup", "mousemove", 
    "click", "dblclick", "rightclick", "dblrightclick",
    "resize", "focus", "blur",
    "touchstart", "touchmove", "touchend",
    "keydown"
],
我的js文件中的代码

 map.events.register("rightclick", map, onMapRightClick);

 function onMapRightClick(e){
 var str = map.getLonLatFromViewPortPx(e.xy);
 Ext.MessageBox.show("",str.lat + " " + str.lon);
 };

如果有一种方法可以帮助我

您可以让eventhandler侦听“mouseup”事件,并使用OpenLayers内置功能确定它是否是右键单击。请记住禁用地图元素上的contextmenu

// Disable the context menu on your map element.
var mapElement = document.querySelector("#map");
mapElement.oncontextmenu = function () { return false };

// Create the map and add your event listener.
var map = new OpenLayers.Map('map');
map.events.register('mouseup', map, onMapRightClick);

function onMapRightClick(e) {

  // Check if it is a right click event.
    if (OpenLayers.Event.isRightClick(e)) {
      var str = map.getLonLatFromViewPortPx(e.xy);
      Ext.MessageBox.show("",str.lat + " " + str.lon);
    }
}