除了上面的答案,您必須考慮 1.在AJAX調用(緩存)和 中的IE的不同行爲2.您必須將DOM(節點)傳遞給回調函數;否則函數 將失敗 3.在IE中使用此方法的另一個警告是,字符串將其轉換爲XML DOM對象時存在限制。這意味着可以通過這種方式加載和呈現KML文件的大小限制。我在geoxml3用這個修改,使工作在IE Ajax調用:
geoXML3.fetchXML = function (url, callback) {
function timeoutHandler() {
callback();
};
$.ajax({
type: "GET",
cache: false,
url: url,
success: function(xml) {
var xmldom = createXMLDocument(xml);
callback(xmldom);
}
});
一個字符串轉換爲XML DOM採取這裏看看http://www.w3schools.com/dom/dom_parser.asp
function createXMLDocument(strResponse)
{
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(strResponse,"text/xml");
} else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(strResponse);
}
return xmlDoc;
}
所以,問題似乎是在geoxml。我假設你不想在Google Maps API中使用KmlLayer選項?有一件事要檢查,你用什麼MIME類型? – 2012-03-22 23:03:49
生成kml時,我設置Content-type:application/vnd.google-earth.kml + xml,我也不想使用kmllayer,因爲當geoxml工作時,它允許我將偵聽器添加到每個標記的mouseover屬性上在kmllayer中不可用 – weaverk 2012-03-23 08:37:44
我建議在他們的問題跟蹤器上提交一個錯誤:http://code.google.com/p/geoxml3/issues/list它似乎是活躍的。 – 2012-03-23 18:40:00