2

質問に関連: IE8 での Google Maps API からの不明なエラー

関数 function Mp(a,b){ .. } では、次のコード行がエラー var e=a.getBoundingClientRect(); をトリガーします。

  1. このエラーを再現するには
    1. Google マップ ページを作成します (ページをスクロールするための十分なスペースが確保できるように十分な高さを確保してください。マップを全画面表示にしないでください)。
    2. マーカーを配置する
    3. デバッグモードでIE(私は10でテストしました)でアプリを開きます
    4. ページが読み込まれたら、マーカーをクリックして情報ウィンドウ、つまりポップオーバーを表示します
    5. ページをスクロールしてみる

      エラーが発生します。

getBoundingClientRect()、コンテナーの位置を返す IE の機能。問題は、ツール ヒント、つまり情報ウィンドウに関連している可能性があります。

詳しくはこちらをご覧ください: http://ejohn.org/blog/getboundingclientrect-is-awesome/

解決策を試してみました: google.maps.event.clearListeners(window, 'resize'); うまくいきません。

サンプルアプリ: https://googledrive.com/host/0B-Y3wXhWdoQebnBUV2RNRWhJZE0/test-shell.html 礼儀: @user2250544

4

3 に答える 3

9

あなたがそのようなことに興味があるなら、これはうまくいくように見える不潔なハックです:

HTMLElement.prototype.getBoundingClientRect = (function () { 
    var oldGetBoundingClientRect = HTMLElement.prototype.getBoundingClientRect; 
    return function() { 
        try { 
            return oldGetBoundingClientRect.apply(this, arguments); 
        } catch (e) { 
            return { 
                left: '', 
                right: '', 
                top: '', 
                bottom: '' 
            }; 
        } 
    }; 
})();
于 2014-05-07T21:35:25.593 に答える
0

ここに記載されているようにブラウザのキャッシュをクリアすると、https ://support.google.com/maps/answer/21849?hl=en で同様の問題を解決できました。

于 2013-12-03T08:08:36.940 に答える