2009-12-09 21 views
2

我設法加載地圖跨瀏覽器,但是當涉及到使用標記填充地圖時,它在IE7中不起作用(標記不顯示)。 在Firefox中一切正常。Google地圖標記不在IE7中顯示

位置存儲在XML中,然後通過javascript解析並添加標記。

XML結構:

<?xml version='1.0' standalone='yes'?>  
<stores> 
    <store> 
    <lat>47.00565</lat> <!-- Note: fake values here --> 
    <lng>26.25879</lng> 
    </store> 
</stores> 

jQuery代碼:

var loadMarkers = function(xml){ 
    var $allstores = $(xml).find("store"); 
    for($i=0; $i<$allstores.length; $i++){ 
    var $store = $allstores.eq($i); 
    var marker= new GMarker(new GLatLng($store.find("lat").text(),$store.find("lng").text())); 
    MaCarte.addOverlay(marker); 
    } 
} 

這可能是知道有300+存儲在XML文件中非常有用。

你有過這樣的問題嗎?

UPDATE:

這個問題似乎是在XML解析。 事實上,如果我提醒門店數量返回這樣的:

alert($allmagasins.length); 

我得到「0」在IE和火狐上的「252」。 jQuery不能正確解析IE中的XML嗎?

+0

是否當你把靜態COORDS,而不是'$ store.find( 「LAT」)工作正確的文本()'? – hsz

+0

它仍然不起作用。 –

+0

您可以顯示在調用loadMarkers之前如何加載XML? –

回答

2

OK,我找到了解決辦法。

在使用jQuery處理IE和XML解析時,必須完成一些工作才能使其工作。

,這裏是我更新的工作jQuery代碼:

var loadMarkers = function(xml){ 

    if($.browser.msie){ 
    var data = xml; 
    xml = new ActiveXObject('Microsoft.XMLDOM'); 
    xml.async = false; 
    xml.loadXML(data); 
    } 

    var $allstores = $(xml).find("store"); 
    for($i=0; $i<$allstores.length; $i++){ 
    var $store = $allstores.eq($i); 
    var marker= new GMarker(new GLatLng($store.find("lat").text(),$store.find("lng").text())); 
    MaCarte.addOverlay(marker); 
    } 
}