Google maps api 3 从Google Maps Mouseover获取pageX和pageY

Google maps api 3 从Google Maps Mouseover获取pageX和pageY,google-maps-api-3,Google Maps Api 3,将侦听器添加到mousemove并使用console.log检查事件会生成一个对象: {qE{latLng:Q,Sa:MouseEvent,pixel:undefined,ca:undefined,} 我希望提取{Sa:MouseEvent}对象的pageX和pageY属性 我知道我可以通过event.Sa.pageX和event.Sa.pageY访问它们。但是,据我所知,Sa对象在任何地方都没有文档记录。是否有另一种更可靠的方式来访问pageX和pageY?我只是担心它将来会崩溃。pageX和

将侦听器添加到
mousemove
并使用
console.log检查事件会生成一个对象:

{qE{latLng:Q,Sa:MouseEvent,pixel:undefined,ca:undefined,}

我希望提取
{Sa:MouseEvent}
对象的
pageX
pageY
属性


我知道我可以通过
event.Sa.pageX
event.Sa.pageY
访问它们。但是,据我所知,
Sa
对象在任何地方都没有文档记录。是否有另一种更可靠的方式来访问
pageX
pageY
?我只是担心它将来会崩溃。

pageX和pageY是DOM事件的属性,您观察到的事件似乎是一个,它不会公开请求的属性

使用
addDomListener
观察(包含映射的节点的)DOM事件:


如果事件没有绑定到
map.getDiv()
,而是绑定到多边形,该怎么办?然后,
e
对象仍然不包含
pageX
pageY
,除非我通过
Sa
对象进行代理。您不应该访问属性
Sa
,此标签可能会随着下一个API版本而更改(我刚刚检查了它,对于3.10,它是
Ja
,对于3.11,它是
Ra
)。可以执行的操作:迭代PolyMouseEvent的所有属性,包含DOM MouseEvent的属性将具有构造函数
MouseEvent
。但是,由于此属性没有文档记录,您不能依赖PolyMouseEvent将公开包含DOM-MouseEvent的属性这一事实。现在,您将迭代事件的属性并查找具有MouseEvent名称的构造函数的属性。脏兮兮的,但很管用:)--谢谢你。这是一个教训。。。构造函数的名称因浏览器而异。您必须以不同的方式检查Chrome、FF和Safari:
如果(e!=未定义&&(e.constructor.name='MouseEvent')|(e.constructor.toString()='[object MouseEvent]')|(e.constructor.toString()='[object MouseEventConstructor]'){}
google.maps.event.addDomListener(map.getDiv(), 'mouseover', function(e){
   console.log(e.pageX+','+e.pageY);
});