APIv3に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が呼び出され、infowindowがポップアップし、return falseがヒットし、他に何も起こりません。ただし、FirefoxとIEでは、戻り値falseは無視されているようで、マップクリックイベントが発生して「マップクリック」を警告します。
私の実際のアプリケーションでは、mapsclickイベントがinfowindowcloseイベントを発生させます。したがって、Chromeで情報ウィンドウが表示されたら、マップをクリックして閉じます。Firefox / IEでは、マーカーをクリックすると、情報ウィンドウが作成されますが、マップクリックが実行され、すぐに閉じられます。
誰かが問題を見ることができますか?ChromeはFirefoxのバグをスキップしていて、IEは気に入らないのです。