1

明確な理由もなく突然動作を停止した Google マップがあります (何ヶ月もコードに触れていませんでしたが、CMS のラッパー コードが企業から通知されずに変更された可能性があります)。

http://www.democratandchronicle.com/section/builder

(マップの外側の厄介な HTML については申し訳ありません。そのほとんどは、私たちの親会社からのものです...)

私はそれを私の機能のこの部分に絞り込みましたdrawMarker:

GEvent.addListener(marker, 'click', function() {
  marker.openInfoWindowHtml(html, { maxWidth: 500 });
});

注:

  • alert(html);情報ウィンドウの正しい HTML を表示します。
  • html 変数の HTML は確かに有効です。
  • クリックイベントが発生しています(その中で確認されalert('test');ています)
  • 私が同じサイトでホストしている別のマップは、同様のコードにもかかわらず正常に動作します。
  • Firebug または IE に JavaScript エラーは見られません。

私はしばらくの間、これに対して頭を悩ませてきました。私は何が欠けていますか?

4

5 に答える 5

1

最近この問題が発生した、イベントハンドラーが確実に実行された、など。ページにGoogleMaps<script>タグのインスタンスが2つあることが判明しました。1つを削除すると修正されました。

于 2011-11-28T11:08:18.463 に答える
1

Google Maps APIでランダムな問題が発生することがありますが、APIバージョンを1つ戻すことで修正されました。つまり、GoogleマップAPIのJavaScriptインクルージョン文字列がこのようなものである場合http://maps.google.com/maps?file=api&v=2.xd&key=XXXXX は、2.xを2.132などの数バージョン前(動作していたとき)に変更します。

于 2008-10-23T06:27:02.597 に答える
1

試す:

GEvent.addListener(marker, 'click', function() {
  this.openInfoWindowHtml(html, { maxWidth: 500 });
});

オブジェクト「マーカー」のスコープが関数の外にあることを覚えておいてください

于 2009-01-14T21:54:10.493 に答える
0

これは自然に解決しました。APIの更新により、1つまたは2つのバージョンで何かが壊れたのではないかと思います。

于 2009-01-15T15:56:29.670 に答える
0

HTML から新しい変数を作成するよう JavaScript に強制してみてください。

GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html+'', { maxWidth: 500 });
});
于 2008-10-22T20:22:29.943 に答える