我已经实现了here找到的解决方案,但它在Firefox中无效。
IE加载和读取XML文档 Strike,如果数据类型为“string”,则数据变量保存XML,但将其加载到xml变量中将返回下面的相同函数。 XML文件是存储在与HTML文件相同的文件夹中的平面文件。该文件是从"file:///D:/..."
运行的,而不是从Web服务器运行的。
Firefox 版本 16.0.2 ,我尝试过 jquery 1.7.1和1.8.2 。我进行了dataType
次比较,数据不是XML
,只是说Object
。
我发出$(data).contents
的警告并获取:
function (c, d) {
var e = p.map(this, b, c);
return bc.test(a) || (d = c), d && typeof d == "string" && (e = p.filter(d, e)), e = this.length > 1 && !bg[a] ? p.unique(e) : e, this.length > 1 && bd.test(a) && (e = e.reverse()), this.pushStack(e, a, k.call(arguments).join(","));
}
我尝试将security.fileuri.strict_origin_policy
设置为 false ,但这没有效果。
以下是代码:
$.ajax({
url: "COBIE.xml",
dataType: ($.browser.msie) ? "text" : "xml",
success: function (data) {
if (typeof data == "string") {
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(data);
// Returned data available in object "xml"
setMessage("XML date has been loaded");
} else if (typeof data == "xml") {
xml = data;
alert($(xml).contents);
// Returned data available in object "xml"
setMessage("XML date has been loaded");
} else {
alert($(data).contents);
setMessage("I have no idea what data you're trying to load");
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
setMessage(errorThrown);
}
});
答案 0 :(得分:1)
如果您安装了Firebug,则可以使用F12查看页面的HTML,以及访问控制台。
然后,你可以使用console.debug而不是使用alert查看$(data).contents
console.debug($(data).contents);
我不确定我知道你的问题的答案,但这应该可以让你更好地了解正在发生的事情。
答案 1 :(得分:0)
代码工作正常。我的XML里面有一些有趣的东西,所以我无法正确地解析它,但它没有给出错误。它现在正在运作。