API Карт Google - GMarker.openInfoWindowHtml() перестал работать
У меня есть карта Google, которая внезапно перестала работать без видимой причины (я не касался кода в течение нескольких месяцев, но код оболочки из нашей CMS мог измениться, не сообщив мне об этом корпорации).
http://www.democratandchronicle.com/section/builder
(извините за неприятный HTML вне карты, большая часть которого исходит от нашего корпоративного родителя...)
Я сузил это до этой части моего drawMarker
функция:
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html, { maxWidth: 500 });
});
Отметить:
alert(html);
отображает правильный HTML для информационного окна.- HTML-код в переменной html действительно допустим.
- Событие нажатия срабатывает (подтверждено
alert('test');
внутри) - Другая карта, размещенная на том же сайте, работает нормально, несмотря на похожий код.
- Нет ошибок JavaScript в Firebug или IE, которые я вижу.
Я бился головой об этом некоторое время. Что мне не хватает?
5 ответов
Это решилось само собой. Я подозреваю, что обновление API сломало что-то для версии или двух.
Иногда у меня возникали случайные проблемы с API Карт Google, и не раз это исправляли, возвращаясь к одной версии API. т.е. если ваша строка включения JavaScript API Google Maps выглядит следующим образом 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 });
});
помните, что область действия объекта "маркер" находится за пределами вашей функции
Попробуйте заставить JavaScript создать новую переменную из вашего HTML:
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html+'', { maxWidth: 500 });
});