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