API Карт Google - GMarker.openInfoWindowHtml () перестал работать - PullRequest
1 голос
/ 22 октября 2008

У меня есть карта 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 ]

1 голос
/ 28 ноября 2011

У меня недавно была эта проблема, определенно запускались обработчики событий и т. Д. Оказалось, что на странице было два экземпляра тега Google Maps . Удаление одного исправило это.

1 голос
/ 23 октября 2008

Иногда у меня возникали случайные проблемы с API Карт Google, и не раз это исправляли, возвращаясь к одной версии API. то есть, если ваша строка включения JavaScript API Google Maps выглядит так http://maps.google.com/maps?file=api&v=2.xd&key=XXXXX замените 2.x на что-нибудь несколько версий назад (когда он работал), например 2.132 или что-то

1 голос
/ 15 января 2009

попробовать:

GEvent.addListener(marker, 'click', function() {
  this.openInfoWindowHtml(html, { maxWidth: 500 });
});

помните, что область действия объекта "маркер" находится за пределами вашей функции

0 голосов
/ 15 января 2009

Это решилось само собой. Я подозреваю, что обновление API сломало что-то для версии или двух.

0 голосов
/ 23 октября 2008

Попробуйте заставить JavaScript создать новую переменную из вашего HTML:

GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html+'', { maxWidth: 500 });
});
...