1. ホーム
  2. javascript

Google Maps API v3 infowindow close event/callback?

2023-07-24 22:25:59

質問

Google Maps インターフェイスで開いているすべてのインフォウィンドウを追跡したいのですが (それらの名前を配列に格納します)、それらが閉じられたときに、それぞれの右上隅の "x" を介して配列からそれらを削除する方法が分かりません。

私が聞くことができるある種のコールバックがありますか? あるいは、次のようなことができるかもしれません。 addListener("close", infowindow1, etc ?

どのように解決するのですか?

ここで私が見つけた唯一の一貫した解決策は、ポインタを保持することです。 infoWindow へのポインタを保持し、その .getMap() メソッドをチェックします。

この理由は、他の要素をクリックすると、他の理由でinfoWindowが解除されることがあるからです...そのような場合、メソッドなしで closeclick イベントが発生しないためです。

var infoWindow = new google.maps.InfoWindow({ content: 'Something to put here.' });
infoWindow.open(map, infoWindow);

setInterval(function ()
{
    console.log("infoWindow is bound to map: "+(infoWindow.getMap() ? true : false));

}, 1000);

... もしあなたが文字通り infoWindow が "X" ボタンで閉じられたかどうかだけを気にするのであれば、モニタリングは closeclick を監視することは問題ありません。しかし、それが閉じられる、または閉じられた理由は他にもあります。