Задать вопрос
@karpo518

Как правильно удалять/перерисовывать Яндекс.Карту, созданную через конструктор карт?

Чтобы добавить яндекс-карту на страницу, я с помощью js генерирую и встраиваю в контейнер div тег script, полученный в конструкторе карт . Такой трюк потребовался, потому что:

1. Я не нашёл способа создавать на странице карту, собранную в конструкторе, через Javascript API карт.
2. Карта, собранная в конструкторе, должна иметь высоту, в то время как я хотел бы, чтобы она брала высоту из высоты родительского контейнера.

Сейчас я использую событие resize, чтобы при смене ориентации дисплея на смартфоне, карта сохраняла размер родительского контейнера. По этому событию я сначала удаляю содержимое контейнера, а потом добавляю в него заново тег script, сгенерированный конструктором карт. Очевидно, это неправильный способ перерисовки карты, потому что в консоль сыпятся ошибки, связанные с неожиданным удалением html-верстки карты.

Примеры ошибок:

Script element was removed from document.
Uncaught TypeError: Cannot read property 'options' of undefined


Вторая ошибка генерируется в фоновом режиме и замусоривает всю консоль. Карта работает, как и ожидалось, но я всё же хотел бы исправить ошибки, которые плодит мой костыль.
  • Вопрос задан
  • 84 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
@karpo518 Автор вопроса
Решил проблему адаптивности блока карт использованием кода Iframe вместо Javascript. Указал тегу iframe width и height 100%. Теперь блок подстраивается под размеры родителя. Одним костылем на сайте меньше)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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