Проблема с Google Maps API и Head JS

#google-maps #jquery-plugins

#google-карты #jquery-плагины

Вопрос:

Итак, я загружаю Google Maps APL v3 с помощью headjs, а после этого — плагин jQuery gmap3. Это фактический код:


head.js(
"http://localhost/wordpress/wp-includes/js/l10n.js?20101110",
"http://localhost/wordpress/wp-includes/js/jquery/jquery.js?1.4.4",
"http://maps.google.com/maps/api/js?sensor=false",
"http://localhost/wordpress/wp-content/themes/twentyten/framework/js/gmap3.min.js?3.3"
);

Проблема в том, что я получаю сообщение об ошибке с надписью google.maps.Карта не определена. Я думаю, это потому, что файл maps js загружает дополнительные ресурсы, но head js продолжает анализировать файлы js, поэтому мы получаем ошибку. Есть какие-либо решения, чтобы обойти это? Предоставляет ли Google Maps аналогичное событие google.maps.ready?

Я также пытался использовать «Асинхронную загрузку Javascript API», как говорится в документации, я скопировал все это и получаю ошибку «Uncaught TypeError: объект [object DOMWindow] не имеет метода ‘initialize'». Странно, очень странно.

Ответ №1:

Я не уверен насчет первой части, но я загружаю ее асинхронно и получил ту же ошибку, что и вы, которая привела меня сюда в поиске Google. Итак, для будущих гуглеров…

Пример строки API карт Google содержит следующее:

 script.src = "http://maps.google.com/maps/api/js?sensor=falseamp;callback=initialize";
  

часть «инициализировать» — это обратный вызов, который код вызывает после загрузки скрипта… таким образом, вам либо нужно определить функцию «инициализации», либо изменить имя на функцию, которую вы хотите вызвать, и тогда все готово.