У меня есть карта Google, созданная с использованием более нового API Карт Google V3 из сценария Perl.Сценарий создает карту из значений, переданных ему из скрытых полей формы на родительской странице, и возвращает карту в iframe на той же родительской странице.
Причина, по которой карта находится в iframe, заключается в том, чтоЯ обнаружил проблемы с браузером как в Firefox, так и в IE при попытке отобразить карту непосредственно в div на родительской странице.Это не происходит, когда карта в противном случае отображается в окне iframe.Я пришел к выводу, что это потому, что новый API Карт Google V3 немного странен в том, как он интерпретирует наследование CSS, и более или менее требует, чтобы карта отображалась в блочном элементе со 100% значениями ширины и высоты.Отрисовывая окно iframe в div, я могу контролировать нужный размер с помощью CSS div, в то же время предоставляя API Карт Google 100% значения ширины и высоты через документ iframe.
Этовозникла изначально, потому что я действительно хотел, чтобы карта отображалась в скрытом элементе div, который становится видимым с помощью jQuery, когда пользователь нажимает на ссылку Map.Однако это не будет работать ни в Firefox, ни в IE, и карта не будет отображаться в элементе, исходное свойство отображения CSS которого установлено в none.Это даже не сработает при попытке использовать внешнюю оболочку div, где он должен был унаследовать значения из этой оболочки div.
Так что теперь у меня есть обходной путь, при котором div изначально не скрыт, iframe показывает:карты строятся идеально, а затем событие setTimeout, записанное на странице iframe, закрывает div, чтобы скрыть карту на родительской странице.Я знаю, я знаю, это довольно хак, но она позволяет карте правильно отображаться, а затем скрывает ее из поля зрения.
Итак, то, что я ищу здесь, это способ узнать, когда карта имеетзакончил рендеринг, чтобы инициировать событие jQuery, чтобы скрыть div, вместо метода setTimeout, который используется в настоящее время (что также не гарантирует, что карта действительно закончила рендеринг. В лучшем случае это всего лишь хорошее предположение).
Я просмотрел документацию по API Карт Google V3 и осмотрел другие места в Интернете, чтобы узнать, есть ли какой-нибудь способ узнать, когда карта завершила рендеринг безуспешно, и надеюсь, что кто-то, знакомый с новым API Карт Google, мог быесть ответ, который я стараюсь, по крайней мере, сделать этот обходной путь немного более изящным:)
Спасибо за любое направление, которое вы можете указать мне, чтобы достичь того, чего я пытаюсь достичь здесь.