Это где-то задокументировано, что мне нужно указать обратный вызов для определения модуля google.maps? Или это ошибка.
Следующий код не загружает модуль карт 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 или вызов функции, но вам нужно дополнительно
поручить загрузчику API JavaScript Maps отложить выполнение вашего
код приложения до полной загрузки кода JavaScript API Карт.
Вы можете сделать это, используя параметр обратного вызова, который принимает в качестве аргумента
функция, выполняемая после завершения загрузки API.
Как это означает, что отсутствие обратного вызова не загрузит API? Он говорит, что вы можете использовать параметр обратного вызова для выполнения функции, когда код полностью загружен, но не говорит, что код никогда не загрузится без параметра обратного вызова.