我在使用以下代码时遇到了IE9的问题:
var XMLDocument = data;
var erreurs = new Array();
var test = data.lastChild.lastChild.childNodes;
for(var i=0; i<test.length; i++)
{
//var testx = test[i].textContent;
//alert("Test"+i+" = "+testx);
var testx = getText(test[i]);
alert(testx);
erreurs[i] = testx;
}
function getText(el) {
return el.textContent || el.innerText || el.nodeValue || '';
}
在FF,Opera和Safari中,此代码运行正常。
在IE中,它给了我:
Test0 =未定义
Test1 =未定义
我的XML:
<error>
<missing>1</missing>
<missing>2</missing>
<missing>a</missing>
</error>
我只想返回“缺失”节点的值。
非常感谢你的帮助。
答案 0 :(得分:3)
我在这个网站上找到了解决方案: http://www.chezneg.fr/leblog/chezneg-leblog.php?id_art=125
貌似,IE和FF解释器不会以相同的方式读取XML文档
对于FF,错误标记位于:data.lastChild.lastChild.childNodes
对于IE,错误标记位于:data.lastChild.lastChild.lastChild.lastChild.childNodes
(dixit the debugger)
因此,最好通过以下代码找到错误标记:data.getElementsByTagName('error');
非常感谢Esailija的帮助!
答案 1 :(得分:3)
我通过以下代码解决了IE9中的问题:
function getText(el) {
return el.textContent || el.text;
}