Google Maps API - GMarker.openInfoWindowHtml() перестал работать
-
03-07-2019 - |
Вопрос
У меня есть карта Google, которая внезапно перестала работать без видимой причины (я месяцами не прикасался к коду, но код-оболочка из нашей CMS, возможно, изменился без уведомления корпорации).
http://www.democratandchronicle.com/section/builder
(извините за отвратительный HTML за пределами карты, большая часть этого исходит от нашего корпоративного родителя ...)
Я сузил круг поисков до этой части моего drawMarker
функция:
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html, { maxWidth: 500 });
});
Заслуживающий внимания:
alert(html);
отображает правильный HTML-код для infowindow.- HTML в переменной html действительно допустим.
- Срабатывает событие click (подтверждено
alert('test');
внутри него) - Еще одна карта, которую я размещаю на том же сайте работает нормально, несмотря на похожий код.
- Никаких ошибок JavaScript в Firebug или IE, которые я вижу.
Я уже некоторое время бьюсь об это головой.Что я упускаю из виду?
Решение 5
Это решилось само собой.Я подозреваю, что обновление API что-то сломало для одной или двух версий.
Другие советы
Время от времени у меня возникали случайные проблемы с Google Maps API, и не раз это исправлялось путем возврата к одной версии API.т. е.если ваша строка включения javascript в Google Maps API выглядит следующим образом http://maps.google.com/maps?file=api&v=2.xd&key=XXXXX
измените 2.x к чему-то, что было несколько версий назад (когда это работало), например 2.132 или что - то еще
попробуй:
GEvent.addListener(marker, 'click', function() {
this.openInfoWindowHtml(html, { maxWidth: 500 });
});
помните, что область действия объекта "маркер" находится за пределами вашей функции
Недавно у меня возникла эта проблема, определенно запускались обработчики событий и т.д.Оказалось, что было два экземпляра Google Maps <script> tag on the page.Удаление одного из них исправило это.
Попробуйте заставить JavaScript создать новую переменную из вашего HTML:
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html+'', { maxWidth: 500 });
});