Клуб API Карт

Неожиданные ошибки в консоле

sedrak.dalaloyan
31 марта 2016, 22:12

Последнее время появились неожиданные ошибки в консоле. Можете подсказать что-нибудь?

Uncaught TypeError: i.postMessage is not a function

combine.js?load=0c8u0g:s11(W8w151719(T(S1.8y(V1*1)8C1@1j5n9T6M6T0a0e8M1Z8F8H8R8S8U2d8L2b8O0t0n2n8Y8…:295

12 комментариев
Подписаться на комментарии к посту
Включите необфусцированную версию
&mode=debug
dimik,
angular.js:11655 TypeError: iframeWindow.postMessage is not a function
at Inception.defineClass._sendToIFrame (https://api-maps.yandex.ru/2.1.35/combine.js?

combine.js?load=6b6c6e6f6h6k2p9R1H1B1D.g1L6t1N!R6C!S!U6E6F6H6L6M6O!V!W!Y1P6P!00u6T1S6V0y6Y6X!1!9:S@…:13490 Uncaught Error: util.dom.element.html: попытка переопределить innerHTML у элемента, не добавленного в документ

Может это из-за Ангулара?
sedrak.dalaloyan,
Мало информации. Браузер? ОС? Соберите минимальный пример, воспроизводящий проблему.
Добрый день, у меня та же проблема, вот тут можно посмотреть
http://n-w-s.ru/контакты
при переходе на страницу "контакты" загружается карта, при уходе со страницы в консоли начинает валится данная ошибка. И да, тоже используется angular.js. Браузер google Chrome.
и кстати &mode=debug не дает ожидаемого результата, по прежнему отдается обфусцированная версия
Вот минимальный пример, который воспроизводит проблему:
https://raidenyn.github.io/yandex-map-bug-sample/#/page1


У Хрома (Yandex, Opera и т.д.) консоль забивается ошибками, что через некоторое время приводит к краху вкладки.

В Firefox и Edge просто возникает одна ошибка в консоли. Но все равно не приятно.



ynagaev,
Я вижу одну ошибку – падает insertBefore
https://yadi.sk/i/ts2TRk_8rYQCu



У вас отсутствует DOM-контейнер, с указанным вами id
dimik,
В этом-то и проблема. Тут используется стандартный роутер ангуляра (ngRoute), который при переходе на новую страницу очищает DOM старой вместе с контейнером карты. Вполне логичное поведение для одностраничного сайта.Судя по всему код ЯндексКарт не обрабатывает эту ситуацию и начинает генерировать ошибки в цикле.
ynagaev,
Причем тут код карт? Это вы должны обрабатывать, отписывать обработчики событий и делать на карте destroy
dimik,
Суть в том, что в примере используется Конструктор карт, а не прямая работа с API. Т.е. я напрямую не подписываю события, потому и не могу их отписать. 


Вызвать destroy было бы отличным решением, но я не могу придумать как это сделать, когда карту вставляет Конструктор. Не подскажете?
ynagaev,
Мда, видимо конструктор не очень подходит для one page приложений.
Сейчас я не вижу нормального решения, только если хак
dimik,
спасибо, за помощь. Буду надеятся, что Конструктор поправят. Или хотя бы сами Карты ограничатся одной ошибкой и не будут генерировать их в цикле. Пока, видимо, придется работать с API карт напрямую.