Не используйте display:none
для предварительной загрузки. Поскольку элемент, установленный на display:none
, не отображает каких-либо своих физических атрибутов, браузер не будет загружать его, пока он не станет видимым.
Альтернативой является использование visibility:hidden
, но вы рискуете столкнуться с пользовательским агентом, который делает почти то же самое. visibility:hidden
требует, чтобы браузер вычислял блочную модель для изображения, что требует загрузки изображения (чтобы получить размеры). Я не верю, что это работает в IE6.
Последний способ (и мой любимый) - создать div непосредственно перед вашим тегом </body>
. Поместите его абсолютно с left: -99999999px; top: -99999999px
. Браузер вынужден отображать изображения (и, следовательно, загружать их), и нет никакого грязного Javascript, чтобы иметь дело с ним.
Теперь, чтобы интегрировать это с вашей проблемой, поместите код для вашей карты Google после вашего "preload div". Ваш браузер будет вынужден загрузить изображения, прежде чем он запустит код для создания карты. Это должно решить вашу проблему.
Надеюсь, это поможет!