0

infoWindowが閉じられたときに特定の条件が満たされた場合、デフォルトのcloseイベントが発生しないようにします。それを達成することは可能ですか?私は次のような多くのことを試しました:

  1. イベントの伝播を停止する
  2. コールバックメソッドからfalseを返す
  3. 情報ウィンドウによって公開される、クローズを妨げるメソッド/プロパティもありません。

これが可能かどうか教えてください。

4

3 に答える 3

0

closeclickあなたができる唯一のことは、あなたをどこにも導かない出来事を捕まえることです。

私は一度だけ一緒に何かをハッキングしましたが、それはあなたのために働くかもしれないし、うまくいかないかもしれません:ユーザーがクリックして閉じるxマークに到達する方法を特定し、それを削除しました。ユーザーはinfoWindowを閉じることができません。まったく。.close()を呼び出すことで、引き続き実行できます。

警告!これはハックです

var a=document.getElementById('map_canvas');
var b=a.getElementsByTagName('img');
var i, j=b.length;
for (i=0; i<j; i++) {
  if(b[i].src.match('imgs8.png')){
    if(b[i].style.left=='-18px') {
      c=b[i].parentElement.parentElement;
      console.log(c);
      if(c.innerText.match("Map data")) {
        console.log('no');
      } else {
        b[i].parentElement.removeChild(b[i]);
      }
    }
  }
}

今。[x]マークへの参照を保存すると、自由にオンとオフを切り替えることができます。

編集:

このハックのデモンストレーション

于 2012-05-21T19:37:52.627 に答える
0

インフォウィンドウは、イベントの伝播をステップ実行する方法を実際には提供していません。それがあなたのために働くことができるかどうかはわかりませんが、InfoBoxユーティリティライブラリがあり、その動作をより多く制御することができます。質問に固有のInfoBoxOptionsapi-docオブジェクトには、次のプロパティが含まれています。

enableEventPropagation、ブール値。これによりInfoBox、インフォボックスでマウスダウン、クリック、dblclick、およびコンテキストメニューイベントを伝播するかどうかを制御できます(デフォルトはfalseで、の動作を模倣しますgoogle.maps.InfoWindow)。インフォボックスがマップラベルとして使用されている場合は、このプロパティをtrueに設定します。iPhone注:このプロパティ設定は効果がありません。イベントは常に伝播されます。

于 2012-05-21T11:54:54.020 に答える