我正在尝试解析我的 kml 文件,其中包含带有度数符号的数据,而 IE 无法识别该符号。所以我需要用它的哈希码替换度数符号或者必须转义这个字符。我已经验证了很多链接,但没有一个对我有用。`
geoXML3.fetchXML = function (url, callback) {
function timeoutHandler() {
geoXML3.log('XHR timeout');
callback();
};
var xhrFetcher = new Object();
if (!!geoXML3.fetchers.length) {
xhrFetcher = geoXML3.fetchers.pop();
} else {
if (!!window.XMLHttpRequest) {
xhrFetcher.fetcher = new window.XMLHttpRequest(); // Most browsers
} else if (!!window.ActiveXObject) {
xhrFetcher.fetcher = new window.ActiveXObject('Microsoft.XMLHTTP'); // Some IE
}
}
if (!xhrFetcher.fetcher) {
geoXML3.log('Unable to create XHR object');
callback(null);
} else {
xhrFetcher.fetcher.open('GET', url, true);
if (xhrFetcher.fetcher.overrideMimeType) {
xhrFetcher.fetcher.overrideMimeType('text/xml');
}
xhrFetcher.fetcher.onreadystatechange = function () {
if (xhrFetcher.fetcher.readyState === 4) {
// Retrieval complete
if (!!xhrFetcher.xhrtimeout)
clearTimeout(xhrFetcher.xhrtimeout);
if (xhrFetcher.fetcher.status >= 400) {
geoXML3.log('HTTP error ' + xhrFetcher.fetcher.status + ' retrieving ' + url);
callback();
} else {
// Returned successfully
var xml = geoXML3.xmlParse(xhrFetcher.fetcher.responseText);
if (xml.parseError && (xml.parseError.errorCode != 0)) {
geoXML3.log("XML parse error "+xml.parseError.errorCode+", "+xml.parseError.reason+"\nLine:"+xml.parseError.line+", Position:"+xml.parseError.linepos+", srcText:"+xml.parseError.srcText);
xml = "failed parse"
} else if (geoXML3.isParseError(xml)) {
geoXML3.log("XML parse error");
xml = "failed parse"
}
callback(xml);
}
// We're done with this fetcher object
geoXML3.fetchers.push(xhrFetcher);
}
};
xhrFetcher.xhrtimeout = setTimeout(timeoutHandler, geoXML3.xhrTimeout);
xhrFetcher.fetcher.send(null);
}
};
这是我用来解析我的 kml 文件的代码。这在其他浏览器中可以正常工作,但在 IE 中不行