makc9I
@makc9I
фрилансер, web разработчик

Почему google map временами выдает ошибку?

Всем привет. Подключил на сайт гугл карты.
Подключаю в конце страницы, самым первым скриптом.
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDwOV3ft4xXnuj9f7aCPTcdKF_bTn6g25A&amp;callback=initMap" async=""></script>

А потом уже файл со своими скриптами.
Внутри данного файла подключение выглядит так:
$(function() {
   $(document).ready(function(){

	window.initMap = function() {

		var myLatLng = {lat: 45.1201, lng: 39.0096};

		var map = new google.maps.Map(document.getElementById('map'), {
			center: myLatLng,
			scrollwheel: false,
			zoom: 18
		});

		var marker = new google.maps.Marker({
			position: myLatLng,
			map: map,
			title: 'Hello World!'
		});

	}

});
});


Но время от времени я ловлю такую ошибку: Uncaught InvalidValueError: initMap is not a function
Я догадываюсь, что это происходит по причине того, что код выполняется раньше подключения файла гугл карт, но почему так происходит? Я подключаю этот файл первым (пробовал и асинхронный вариант и простой), внутри своего кода пишу $(document).ready(), что вроде как обязывает дождаться загрузки. Но карта все равно работает через раз.
Вот сам сайт.
карта в самом низу
  • Вопрос задан
  • 4058 просмотров
Решения вопроса 1
@hoarywolf
Сделайте вместо
window.initMap = function() {
просто
function initMap() {
, а главное вынесите ее за пределы
$(function() {
и до подключения файла от гугл.

Происходит так потому, что у вас initMap инициализируется только при полностью загруженном документе, а подключение файла происходит до.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы