Ошибка JavaScript API Карт Google в Internet Explorer - PullRequest
1 голос
/ 01 февраля 2011

Я написал действительно простой плагин jQuery для JavaScript API Карт Google v3.

Он работает в Firefox, Chrome (и др.), Но не в Internet Explorer 8.

я получаю сообщение об ошибке «Объект не поддерживает это свойство или метод» в следующей строке ...

map = new google.maps.Map(mapContainer, myOptions);

Я разместил рабочую страницу примера для демонстрации ... Я пытаюсь получитьБукингемский дворец!Вы можете увидеть код в файле jquery.simplemap.js, он не минимизирован.

http://www.stevefenton.co.uk/cmsfiles/assets/File/simplemap.html

Любая помощь будет высоко ценится.

ОБНОВЛЕНИЕ

Я провел детальную отладку этого кода, и он фактически содержит ошибки в коде Google, который сильно минимизирован и совершенно не читается - вот почему карта загружается, поскольку ошибка возникает послекарта инициализирована.Я опубликую больше, когда узнаю.

UPDATE2

Я переупорядочил различные вещи в плагине, в результате чего карта показала правильное местоположение, но из-за ошибки, которая возникает глубоко в API Карт Google при инициализации карты, я не могу добавить маркер или выноску.

Ответы [ 2 ]

6 голосов
/ 01 февраля 2011

Хорошо, я нашел решение этой проблемы.

Ошибка, возникающая внутри API Карт Google, вызвана областью действия переменной, используемой для хранения карты.Во всех примерах для API используется что-то вроде этого ...

map = new google.maps.Map(mapContainer, myOptions);

Обратите внимание, что "map" является одной из этих замечательных переменных таинственной области видимости ... и я запускаю весь этот код внутримоего плагина jQuery - поэтому конечный результат заключается в том, что API Карт Google не может получить указатель на переменную карты.

Объявляя карту как глобальную переменную, API Карт Google может получить к ней доступ, и все волшебным образом начинает работать отлично.

Таким образом, исправление заключается в объявлении ...

var map;

В глобальной области видимости, чтобы API мог получить к ней доступ.

0 голосов
/ 01 февраля 2011

Я думаю, это просто вопрос времени. Попробуйте сделать этот вызов из HTML:

$("#map").simplemap({ search: "Buckingham Palace, London", description: "Buckingham Palace,<br>London" });

наготове:

$.ready(function() {
  $("#map").simplemap({ search: "Buckingham Palace, London", description: "Buckingham Palace,<br>London" });
});
...