私は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 がロードされていないことを検出できれば、このエッジ ケースを処理できるはずです。 ?