Клуб API Карт

Очередной ymaps.Map is not a constructor

Пост в архиве.

Добрый день! Возникла на одном из сайтов ошибка с подключением api карт. Причём, спустя некоторое время успешной работы (было всё ок). Подключение происходит стандартно: в head имеем скрипт https://api-maps.yandex.ru/2.1.42/?lang=ru_RU (с указанием протокола https, сам сайт на http), после него имеем подключение отдельного скрипта, который выполняет код инициализации через ymaps.ready(mmap.init); - всё по документации, ни вправо, ни влево. Сегодня только заметил, что карта не работает. Через дебаггер я увидел странное поведение загрузки скриптов, некий... redirect. Это можно увидеть тут https://yadi.sk/i/qtEO1d3WuABjh . В Google Chrome пробовал убрать протокол, заменив в адресе скрипта API https:// на //, ... помогло! Однако Firefox упёрся. В итоге после всех шаманств помогло единственное решение: убрать всю инициализацию под window.onload. Но хочу заметить, что это workaround ещё тот, потому что код api продолжает загружаться дважды и исполняться дважды в обоих браузерах. Вопрос: что я делаю не так, следуя документации, что шаги, там описанные, не приводят к успешной инициализации карты?

4 комментария
Компоненты API могут быть загружены только по протоколу HTTPS.
https://tech.yandex.ru/maps/doc/jsapi/2.1/dg/concepts/load-docpage/



Картинка бесполезна. Нужна ссылка на страницу с картой или лучше собрать минимальный пример на jsfiddle, воспроизводящий проблему
Антон Ефремов
12 августа 2016, 13:05
Они загружаются по протоколу HTTPS, всё верно. Ссылка на страницу http://newplace.ru
Антон Ефремов,
АПИ тут ни при чем, как и window.onload (нужно убрать)


Вы подключаете АПИ 2 раза причем разные версии 2.1 и 2.1.42
Один раз в head, второй раз тут

Антон Ефремов
12 августа 2016, 14:46
dimik,
Вот это поворот! (facepalm) Спасибо огромное за наводку!
P. S. Наверное, я как-то не так использую дебаггер webkit'а, если это не смог обнаружить самостоятельно...