有谁知道为什么下面的代码在FireFox中不起作用,但在IE中(在服务器上)以及在本地反过来?
function load_xml(msg) { //this function will load xml even used in IE or any other browser
if ( typeof msg == 'string') {
data = new ActiveXObject( 'Microsoft.XMLDOM');
data.async = false;
data.loadXML( msg);
} else {
data = msg;
}
return data;
}
function getTitle(letter) {
$('#wordle').html('');
jQuery.ajax({
type: "POST",
url: "wordle-list.dat",
dataType: ($.browser.msie) ? "text/xml" : "xml",
success: function(xml) {
var xml2 = load_xml(xml);
var i=0;
$(xml2).find('wordle').each(function(){
$(xml2).find('w').each(function(){ //can change to w:lt(50)
var tmpHold = $(this).text();
if (tmpHold.substring(0, 1) == letter) {
$('#wordle').append('<li class="w">'+$(this).text()+'</li>');
}
});
});
}
});
}
答案 0 :(得分:0)
我的猜测是因为您在服务器上的IE中安装了ActiveX,而不是在Firefox上安装了ActiveX,反之亦然。虽然很难从代码中说出来。代码在什么行上在服务器和客户端机器上都失败了?
答案 1 :(得分:0)
试试这个:
function load_xml(msg) {
if ( typeof msg == 'string') {
if (window.DOMParser)//Firefox
{
parser=new DOMParser();
data=parser.parseFromString(msg,"text/xml");
}else{ // Internet Explorer
data=new ActiveXObject("Microsoft.XMLDOM");
data.async="false";
data.loadXML(msg);
}
} else {
data = msg;
}
return data;
}
答案 2 :(得分:0)
对于每个人的奇迹:
这是因为我的文件扩展名为.dat
,服务器说它是二进制mime类型...