3

Javascript の GoogleMaps API v3 の InfoWindow に問題があります。情報ウィンドウの作成に成功しました。内部に任意のコンテンツを設定できますが、内部にハイパーテキスト リンクを配置したいと考えています。それは正常に動作します。通常、setContent() メソッドにタグを付けると、リンクがウィンドウに正しく表示されます。残念ながら、クリックすることはできません。正しいリンクが添付されていますが、クリックしても何も起こりません。右ボタンでクリックして「新しいウィンドウで開く」を選択すると、問題なく動作します。誰でもここで問題を見つけることができますか? 次のような単純なコードがあります。

var bubble;

... some lines not related to the bubble ...

bubble = new google.maps.InfoWindow({
  maxSize: new google.maps.Size(500,250)
});

... other not related lines...

次に、マーカーを作成するイベントでトリガーします (マーカーに対しては正常に機能します)。

bubble.setContent('<a href="http://www.google.com">LINK</a>');

google.maps.event.addListener(marker, 'click', function() {
   bubble.open(map, marker)
});

「マップ」と「マーカー」の両方で問題ありません。

4

1 に答える 1

1

私は同じ問題に直面しました。これは、情報ウィンドウのコンテンツが DOM に div として動的に挿入されるために発生していると考えられます。なぜこれが正確に起こるのかわかりませんが、これが私がそれを解決した方法です:

  1. jQueryを使用します(私はすでにこれを使用していました-代替のjsライブラリを使用する場合、同じソリューションと同等のソリューションがあるかもしれません)
  2. クラスも定義されるように HTML リンクを更新します (class="infowindow_link" など)。
  3. jQuery ハンドラーを追加してリンクを取得し、それをたどります

    $(".infowindow_link").live('click', function(){ window.location.href=this.href; });

この「ライブ」呼び出しは、DOM への変更を追跡し、挿入した新しいリンクにリスナーをアタッチします。window.location.href の更新は、リンクをたどる通常の動作です。

于 2011-10-11T19:55:40.147 に答える