Неизвестная ошибка при создании GMaps с IE8 - PullRequest
0 голосов
/ 10 апреля 2011

Я пытаюсь создать карту Google на элементе div, который генерируется динамически, и IE не может правильно загрузить карту и выдает ошибку при загрузке всех элементов «неизвестная ошибка в строке 25 файла main.js»

Тестовый файл можно найти здесь: http://martinezdelizarrondo.com/bugs/map.html

Это код:

<p>
       <img height="370" id="gMapPreview" src="http://maps.google.com/maps/
api/staticmap?
center=37.4419,-122.1419&amp;zoom=11&amp;size=500x370&amp;maptype=roadmap&amp;sensor=false"
width="500" />
</p>
<script type="text/javascript">
function initLoader()
{
       // Create a div replacing the existing img preview
       var imgMap = document.getElementById("gMapPreview"),
               dMap = document.createElement("div");
       imgMap.parentNode.replaceChild( dMap, imgMap);

       dMap.style.width = "500px";
       dMap.style.height = "370px";

       new google.maps.Map( dMap, {
                       zoom: 11,
                       center: new google.maps.LatLng(37.4419,-122.1419),
                       mapTypeId: google.maps.MapTypeId.ROADMAP
               });
}

if (window.addEventListener) {
   window.addEventListener("load", initLoader, false);
} else {
   window.attachEvent("onload", initLoader);
}
</script>

Если я поместил div в исходный код вместо создания его с помощью javascript, тоэто работает правильно, но для этого проекта я хочу сделать это таким образом.Я пытался сделать создание div также до завершения загрузки страницы, но это не меняет проблему.

Я не тестировал с IE9, только с IE8, но так как это подразумеваетсядля запуска на публичной стороне веб-сайтов решение должно работать также с IE6 и 7, так как они поддерживаются API GoogleMaps.

Ответы [ 2 ]

0 голосов
/ 16 июля 2012

IE8 не хочет, чтобы вы помещали элемент уровня блока (div здесь) в тег p.Замените p на div, чтобы решить проблему.

0 голосов
/ 10 апреля 2011

Вне моей головы, я бы предложил сделать что-то перед новым:

var map = new google.maps.Map( dMap, {
        zoom: 11,
        center: new google.maps.LatLng(37.4419,-122.1419),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });
...