gpt4 book ai didi

javascript - Jquery XML 解析不适​​用于 IE

转载 作者:行者123 更新时间:2023-11-28 09:14:56 25 4
gpt4 key购买 nike

我遇到了情况并需要帮助。我正在尝试使用 jquery ajax 方法读取 xml 文件的内容,如下所示:

$.ajax({
type: "GET",
url: "Resources/languageResource.xml",
dataType: "xml",
success: function(xml) {
$(xml).find(lang).each(function(){
var title=$(this).find('title').text();
var loginBoxHeader1=$(this).find('loginBoxHeader1').text();
var loginBoxHeader2=$(this).find('loginBoxHeader2').text();
var username=$(this).find('username').text();
var password=$(this).find('password').text();
var submit=$(this).find('LoginBtn').text();
var RememberCheckbox=$(this).find('RememberCheckbox').text();

document.getElementById('titleId').innerText = title;
document.getElementById('h1Id').innerHTML = title;
document.getElementById('loginBoxHeader1').innerHTML = loginBoxHeader1;
document.getElementById('loginBoxHeader2').innerHTML = loginBoxHeader2;
document.getElementById('username').innerHTML = username;
document.getElementById('password').innerHTML = password;
document.getElementById('submit').innerHTML = submit;
document.getElementById('RememberCheckbox').innerHTML = RememberCheckbox;
});
}

});

这在 Firefox 和 Chrome 中效果很好,但不适用于 IE。缺少什么?

Internet Explorer 版本为 9。

这是 xml 文件结构:

<xml>
<English>
<title>Welcome to ******* System</title>
<loginBoxHeader1>Login Panel - </loginBoxHeader1>
<loginBoxHeader2>Please provide following credentials!</loginBoxHeader2>
<username>Username:</username>
<password>Password:</password>
<LoginBtn>Log in</LoginBtn>
<RememberCheckbox>Remember my login on this computer</RememberCheckbox>
</English>

<Spanish>
<title>********************************</title>
<loginBoxHeader1>Login Panel -</loginBoxHeader1>
<loginBoxHeader2>Por favor, proporcione las credenciales siguientes!</loginBoxHeader2>
<username>Nombre de Usuario:</username>
<password>Contraseña:</password>
<LoginBtn>iniciar la sesión</LoginBtn>
<RememberCheckbox>Recordar mi usuario en este equipo</RememberCheckbox>
</Spanish>

</xml>

Chrome/Firefox 上的结果:

enter image description here

IE 上的结果:

enter image description here

最佳答案

它对我不起作用的原因是,在旧版本的 jQuery 中,对 XMLHttpRequest 的字段 responseXML 进行评估以获取 XML 响应。较新的版本似乎总是使用 DOMParser 来解析原始响应,有时在响应传递过程中会抛出异常,即使 XMLHttpRequest 的 responseXML 字段中存在有效的 dom 树。由于字符编码问题,可能会引发异常,但是如果responseXML确实包含dom树,您可以解决此问题:

var xhr;

$.ajax({
type: "GET",
url: "Resources/languageResource.xml",
dataType: "xml",
xhr: function () {
xhr = $.ajaxSettings.xhr();
return xhr;
},
success: onSuccess,
error: function(status, msg) {
if (status.status == 200) {
var xml = xhr.responseXML;
if (xml && xml.documentElement) {
onSuccess(xml);
}
} else {
// error handling
}
}
});

function onSuccess(xml) {
// parsed xml tree
// ...
}

然而奇怪的是,responseXML 包含一个 dom 树,而 DOMParser 无法解析原始响应。这个问题似乎已在 IE10 中得到解决 - IE9 是否使用两个不同的 xml 解析器 (resonseXML!=DOMParser)? - 奇怪...

关于javascript - Jquery XML 解析不适​​用于 IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15760363/

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