0

我已经实现了在此处找到的解决方案,但它在 Firefox 中不起作用。

IE 很好地加载和读取 XML 文档Strike 指出,如果数据类型是“字符串”,则数据变量保存 XML,但将其加载到 xml 变量中会返回以下相同的函数。XML 文件是一个平面文件,存储在与 HTML 文件相同的文件夹中。该文件是从 运行的"file:///D:/...",而不是从网络服务器运行的。

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_policyfalse,但这没有效果。

这是代码:

$.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);
        }
    });
4

2 回答 2

1

如果您安装了Firebug,您可以使用 F12 查看页面的 HTML,以及访问控制台。

然后,您可以像这样使用 console.debug,而不是使用 alert 来查看 $(data).contents

console.debug($(data).contents);

我不确定我是否确切地知道您的问题的答案,但这应该可以让您更好地了解正在发生的事情。

于 2012-11-12T16:40:09.147 回答
0

代码工作正常。我的 XML 中有一些有趣的东西,所以我无法正确解析它,但它没有给出错误。它现在正在工作。

于 2012-11-13T18:20:59.377 回答