google.mapsモジュールを定義するためにコールバックを指定する必要があると文書化されていますか?これはバグですか?gmapを非同期にロードするときにコールバックが指定されていない場合は、他の必要なGoogleマップスクリプトがロードされません。
次のコードは、Googleマップのモジュールをロードしません:
<!DOCTYPE html>
<html>
<head>
<title>
Google Maps JavaScript API v3 Example: Asynchronous Map Simple
</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="UTF-8">
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map_canvas { height: 100% }
</style>
<script type="text/javascript">
function initialize() {
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'),
myOptions);
}
function loadScript() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://maps.googleapis.com/maps/api/js?v=3.6&key=myKey&sensor=false' //adding 'callback=something' gets the maps module to load
document.body.appendChild(script);
}
window.onload = loadScript;
</script>
</head>
<body>
<div id="map_canvas"></div>
</body>
</html>
編集 - そうするために
に答えるために、応答を、あなたは に応じて、独自のタグを挿入することができますwindow.onloadイベントまたは関数呼び出しが必要ですが、さらに Maps JavaScript APIコードが完全に読み込まれるまで、 アプリケーションコードの実行を遅らせるようにMaps JavaScript APIブートストラップに指示する必要があります。 コールバックパラメータを使用します。このパラメータは、APIのロード完了時に実行する関数 を引数としてとります。
これは、コールバックを持たないとAPIのどれもロードされないことを意味しますか?コードが完全にロードされていてもコードがコールバックパラメータなしでロードされないとは言わないときにコールバックパラメータを使用して関数を実行できます。
私はあなたの応答のための私の質問を編集しました。 – pllee
言葉遣いがちょっと変わっているかもしれませんが、コールバックパラメータを指定する必要があることは私には明らかです。これは、非同期にスクリプトを読み込むための非常に一般的なパターンです。 – puckhead
もし彼らが5月の代わりにしなければならないと言えば、私はこの質問を投稿しないでしょう。彼らはセンサパラメータを強制し、別の「必須」パラメータで同じ機能を持たせるのが良いと開発者に警告します。これは私のバグのように聞こえてきます。 – pllee