使用 Google Maps API 侦听器时检索 JavaScript 的事件对象

Retrieving JavaScript's eventObject when using Google Maps API listener

本文关键字:JavaScript 事件 对象 检索 Google Maps API 侦听器 使用      更新时间:2023-09-26

在谷歌地图API V3中,如果用户控制点击地图,我想在地图上添加一个标记。为此,我在地图上添加了一个侦听器,如下所示 -

google.maps.event.addListener(map, 'click', function(e){
if (event.ctrlKey)
    add_marker(e.position);
});

由侦听器传递的 e 参数包含一些数据,但主要是关于点击的位置,而我希望能够询问在 usser 点击地图期间是否按下了控制按钮。

我发现chrome有一个对象事件,这是默认的Javascript的eventObject,其中包含我需要的数据(ctrlKey),这确实适用于chrome。

但是,当我在FF中尝试相同的代码时,它找不到名为"event"的对象,并且我找不到检索它的方法。

感谢您帮助您找到也适用于IE的解决方案。

谢谢丹·

API 没有说明访问 DOM-event-object 的任何内容。

传递给回调函数的参数当前包含一个引用事件对象的属性b,因此您可以使用e.b.ctrlKey

但由于这没有记录在案,因此不可靠,明天可能会改变。

另一种选择:
您可以在不使用 API 方法的情况下观察包含映射的div 的事件:

map.getDiv().onclick=function(e)
{
  e=window.event||e;
  if (e.ctrlKey)
  {
    //do something
  }
}