0

こんにちは、インターネットで答えを探しましたが、何か理解できませんでした。だから私は尋ねました。

問題があるスクリプトから始めます。

 window.onresize=function(){
     if(_UserMarkerNewPosition){               //_UserMarkerNewPosition is global and contains coordinates 
          _Map.panTo(_UserMarkerNewPosition); //_Map is global and contains the map object
     }
     else{
         _Map.panTo(_UserMarkerPosition);    //_UserMarkerPosition is global and contains coordinates
     }
  }

このコードは、1 つを除いてほぼすべての状況で完璧に機能します。私のアプリケーションはユーザーの場所を見つけます。ご存知のように、ページがユーザーの場所にアクセスしようとすると、ブラウザーはユーザーに場所を共有するかどうかを尋ねます。この時点でエラーが発生しました。ブラウザの質問時にユーザーがウィンドウのサイズを変更すると、javascript はTypeError: _Map is Undifine と言います。このエラーは、ウィンドウのサイズ変更時に _Map が作成されないために発生します。だから私の質問は、どうすればこれが起こらないようにすることができますか?

_Map オブジェクトの作成前に window.onresize の実行を停止するにはどうすればよいですか??

どんな助けでも大歓迎です。お時間をありがとうございました!

4

1 に答える 1

2

変数が定義されているかどうかを確認する

window.onresize = function () {
    if (typeof _Map === "undefined") {
        return;
    }
    var whatToPanTo = (_UserMarkerNewPosition) ? _UserMarkerNewPosition : _UserMarkerPosition;
    _Map.panTo(whatToPanTo); 
};

そうでない場合は、終了します。

于 2013-04-19T13:04:13.013 に答える