我正在为 api v3 使用 Redfin 的快速标记覆盖。
以他们的可点击示例为例,
我像这样向 initialize() 函数添加了一个点击监听器,
function initialize() {
var latlng = new google.maps.LatLng(37.4419, -122.1419);
var myOptions = {
zoom: 4,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = window.map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
google.maps.event.addListener(map, 'click', function() {
alert('map click');
});
}
并通过在 addInfoWindow 调用后添加 return false 来修改标记模板,
var marker = new com.redfin.FastMarker(/*id*/i, latlng, ["<div class='marker' onclick='addInfoWindow(", i,"); return false;'> </div>"], null);
如果我在 chrome 中运行它,它会按预期工作。addInfoWindow 被调用,信息窗口弹出,返回 false 被击中,没有其他反应。然而,在 Firefox 和 IE 中,返回 false 似乎被忽略了,并且地图点击事件被触发,提醒“地图点击”。
在我的真实世界应用程序中,地图点击事件会触发信息窗口关闭事件。因此,在 chrome 中显示信息窗口,单击地图并关闭。在 firefox/IE 中单击标记,会构建信息窗口,但会触发地图单击并立即关闭。
任何人都可以看到问题吗?chrome 是否跳过了一个 bug,firefox 和 IE 不喜欢。