2011-04-09 47 views
0

我想創建一個Google地圖上的一個div,它是dinamically生成的,IE無法正確加載地圖,並在加載所有元素時拋出錯誤「第25行的未知錯誤main.js」用IE8創建一個GMaps的未知錯誤

測試文件可以在這裏找到: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一起工作,因爲它們受GoogleMaps API支持。

回答

0

關閉我的頭頂,我建議,在新的做一些事情:

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

我在創建簡化樣本時刪除了賦值,所以這不是問題 – AlfonsoML 2011-04-10 07:39:30

0

IE8不希望你p標籤內把塊級元素(DIV這裏)。將p更改爲div應該可以解決問題。