2

私はJavascriptをかなり理解したと思っていましたが、これは(一見基本的な)ことがポップアップします:

Google マップを使用する Phonegap / jQuery Mobile アプリがあります。電話のインターネット接続が短時間利用できず、アプリの起動時にアプリが Google Maps API を読み込もうとしていた正確な時間に、マップ関連のすべての機能が自然に機能しなくなります。

ただし、奇妙なことは、このコードが含まれている関数が中断し、if チェックを過ぎて実行を停止することです (つまり、doSomething()行が実行されないことを意味します)。

function myFunction() {
    if(google === undefined) {
        alert("Google Maps didn't load!");
    }

    doSomething();
}

Safari の開発者ツールのコンソールを見ると、この投稿のタイトルにエラーが表示されます。

このような未定義変数のチェックは安全であると思われませんか? Google Maps API が読み込まれていないエッジ ケースを処理したいのですが、未定義をチェックできない場合はどうすればよいですか? だけやってみif(!google)ましたが、同じ結果になりました。

また、ユーザーがマップを使用してページに移動したときに、Google ローダーを使用してマップ API を動的にロードしようとしましたが、それを機能させることができませんでした (これを行うには、ローダーも動的にロードする必要があります)。スクリプトを動的にロードできないようです)。document.write純粋なJavascriptでも動的に実行しようとしましたが、Google Maps APIのJavascriptがMobile Safariでそれを壊していると思います. $.getScript()また、成功せずにjQueryを使用しようとしました。

いずれにせよ、マップ API がロードされていないことを検出できれば、このエッジ ケースを処理できるはずです。 ?

4

1 に答える 1