0

我有以下代码来解决 IE 本地访问 XML 问题:

    $.ajax({
        type: "GET",
        url: options.xmlUrl,
        dataType: ($.browser.msie) ? "text" : "xml",
        success: function(data) {wrapTree(data);},
        error:function(){alert(options.loadingError);}
    });

由于 $.browser,它不适用于 jQuery 2.0.0。http://docs.jquery.com/Specifying_the_Data_Type_for_AJAX_Requests上的建议不再有效。任何人都知道它应该如何适应与 jQuery 当前版本一起运行?

4

2 回答 2

2

只需dataType: "text"用于所有情况,然后data = $.parseXML(data)在成功处理程序中将其转换为所有浏览器上的 XML。

于 2013-04-22T14:06:07.617 回答
0

自 v1.9 以来,该$.browser功能已从 jQuery 中删除,并且早在 v1.3 之前就已弃用且不推荐使用。他们建议对大多数用例进行特征检测,而不是浏览器检测。

考虑到该功能是多久以前$.browser被弃用的,如果一个 jQuery 页面推荐使用它,那么该页面可能也很旧——事实上,新版本的 jQuery 很可能根本不需要这个 hack。您是否尝试过完全忽略它?

如果你真的需要它,你可以使用jQuery 迁移库,它恢复了从 v1.9 开始删除的所有过时的特性,包括$.browser.

但是,如果可能的话,我建议尝试找到不涉及此功能的解决方案,因为 Migrate 库旨在解决短期升级问题,而不是长期解决方案;jQuery 在未来的版本中可能不支持它。

我还要说,既然你使用的是 jQuery 2.0,你应该注意这个版本不再支持 IE v6、7 和 8。如果你需要支持旧的 IE 版本,你需要坚持使用 jQuery 1.x . 更重要的是,如果您坚持使用 v2.0,那么您只支持 IE v9 及更高版本。我不知道这个具体问题,但它可能只是旧 IE 版本中的一个问题,所以你甚至可能根本不需要这个 hack。这将是值得检查的。

希望有帮助。

于 2013-04-22T13:48:12.503 回答