Что вызывает исключения JavaScript из Google Maps? - PullRequest
2 голосов
/ 17 июля 2009

Я довольно последовательно получаю исключения JavaScript API GMaps, которые выглядят следующим образом:

  • Ve.k является нулевым или нет объектом (FF & IE)
  • b.k является нулевым или нет объектом (FF & IE)
  • ноль (FF)
  • a. $ E не определено (FF)
  • Uncaught TypeError: Невозможно прочитать свойство 'k' из неопределенного (хром)

Часто исключение возникает во время проверки некоторого выражения в javascript в недрах API GMaps

Почти все может вызвать появление одного из них, например, наложение на карту или событие щелчка мыши.

В течение некоторого времени я искал свой код в поисках оскорбительных оверлеев и обработчиков событий, но пока ничего не найдено. У меня такое было на голой карте без наложений и активных обработчиков.

Некоторые версии API не будут аварийно завершаться в определенных браузерах, но они попали в ловушку, и у меня все еще есть слабое подозрение, что что-то в этой среде затрудняет работу GMaps (например, Facebook Connect, Google Analytics, мой код ...)

Кто-нибудь знает, что это вызывает?

Ответы [ 3 ]

3 голосов
/ 18 июля 2009

Потратив довольно много времени на откат операций, которые повлияли на карту 1 на 1, я наконец-то добрался до строк, которые вызвали эту проблему.

Во-первых, если я удалил вызов setUIToDefault (), то проблема исчезла, для меня это было неприемлемо, потому что я хотел использовать пользовательский интерфейс по умолчанию, и это слабый способ решения проблемы. Спустя еще много операций с картами я пришел на вызовы GWT:

mapWidget.setHeight()
mapWidget.setWidth(). 

Для тех, кто не знаком с GWT, эти два вызова будут в конечном итоге преобразованы в следующий вызов шаблона javascript:

element.style['height'] = height;

где 'element' в этом случае - это div, который содержит карту, а высота в правой части выражения - что-то вроде "690px".

Это было все, что нужно, чтобы сорвать API карт.

Исправление? Установка размера карты div перед созданием карты.

Вы говорите мне, ошибка в API карт или просто отсутствие основной функции? Я собираюсь проверить ж / карты людей.

1 голос
/ 17 июля 2009

Я боюсь, что это просто опасность использования минимизированной, запутанной библиотеки Javascript. Нет отдельной группы ошибок, которые приводят к исключениям, которые вы видите, но вы можете быть уверены, что они являются результатом ошибки в вашем собственном коде. Я использую карты Google довольно широко и регулярно вижу подобные ошибки. В 100% случаев ошибка была моей.

Если вы публикуете (или здесь, или в новых вопросах) конкретные примеры страниц, которые генерируют эти ошибки, мы можем проверить их и, надеюсь, исправить.

1 голос
/ 17 июля 2009

Я должен был бы предположить, что это будет ваш код (если не сказать, что вы плохой программист) или другая вмешивающаяся библиотека. Я успешно использую Google MAPS API уже около года * и никогда не было первого исключения. Единственный раз, когда я получал сообщение об ошибке, это когда я добавлял шарик.

* Сайт выглядит как дерьмо, но это был школьный проект для моей ярмарки в округе, и я не мог использовать что-либо на стороне сервера.

Редактировать: После прочтения вашего комментария я задаюсь вопросом, правильно ли вы указали DOCTYPE? Проверьте и посмотрите, есть ли у вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...