使用IE8创建GMaps时出现未知错误

时间:2011-04-09 20:17:19

标签: javascript internet-explorer google-maps

我正在尝试在div上创建一个谷歌地图,它正在生成,并且IE无法正确加载地图并在加载所有元素时抛出错误“在main.js第25行出现未知错误”

可在此处找到测试文件: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&amp; 7由于GoogleMaps api支持它们。

2 个答案:

答案 0 :(得分:0)

在我的头脑中,我建议在新的之前做点什么:

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

答案 1 :(得分:0)

IE8不希望你在p标签中放置块级元素(div here)。将p更改为div应解决问题。