gpt4 book ai didi

jquery - 如何使用 jQuery 从 Internet Explorer 中的本地 XML 文件查询 XML 元素?

转载 作者:行者123 更新时间:2023-12-01 07:01:42 27 4
gpt4 key购买 nike

我正在构建一个用于触摸屏信息亭的 HTML 页面。我有一个名为 data.xml 的外部 XML 文件,它与我的 HTML 页面位于同一目录中。我能够使用 jQuery 加载外部 XML 文件,解析它并在页面加载时动态构建一些 HTML,在 Firefox 和 Chrome 中没有任何问题。 但后来我在 Internet Explorer 中尝试了它...

使用 $.ajax() 函数可以很好地加载 XML 文档。我执行了一个 alert(xmlDoc.text()),它显示了 XML 文档的所有文本内容。所以这不是问题。

我做了一些搜索,发现 a StackOverflow answer如果您从 Web 服务器提供 XML,这将提供问题的解决方案。它基本上指出,为了让 Internet Explorer 将 xml 字符串视为 xml,需要以下 HTTP HEADER。

内容类型:application/xml;charset=utf-8

此 HTML 页面只需在 Internet Explorer 中作为独立页面运行。 我们不会在信息亭机器上运行网络服务器

我的问题是在 jQuery 中加载本地资源时是否有办法指定正确的内容类型?

这是我正在使用的相关ajax代码...

$.ajax({
url: 'data.xml',
async : false,
success : function(response) {
xml = $(response);
}
});

// Following line works in Firefox/Chrome, but not in Internet Explorer
var firstItemText = $("item:first", xml).text();

编辑:我在 ajax 请求上添加了错误处理函数,如下所示...

$.ajax({
url: 'data.xml',
async : false,
dataType : "xml",
success : function(response) {
xml = $(response);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('Data Could Not Be Loaded - '+ textStatus);
}
});

此函数在 Internet Explorer 中触发,生成的消息是:

无法加载数据:-解析器错误

我使用多个在线 XML 验证器工具检查了我的 XML 文档,它没有错误。

感谢任何帮助。

最佳答案

经过一些测试,我设法让它工作。

问题是当您在本地加载 XML 文件时,Internet Explorer 接收到的数据是纯文本,而不是 text/xml。

解决办法是:

$.ajax({
url: 'data.xml',
async : false,
dataType: ($.browser.msie) ? "text" : "xml",
success : function(response)
{
if (typeof response == "string")
{
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(response);
}
else
xml = $(response);
},

error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert('Data Could Not Be Loaded - '+ textStatus);
}
});

var firstItemText = $("item:first", xml).text();

您可以在此链接中查看完整说明:

http://docs.jquery.com/Specifying_the_Data_Type_for_AJAX_Requests

如果我能提供帮助,我很高兴。

关于jquery - 如何使用 jQuery 从 Internet Explorer 中的本地 XML 文件查询 XML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3120293/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com