0

我的 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 = undefined
Test1 = undefined

我的 XML:

<error>
    <missing>1</missing>
    <missing>2</missing>
    <missing>a</missing>
</error>

我只想返回“缺失”节点的值。

非常感谢您的帮助。

4

2 回答 2

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 的帮助!

于 2012-05-29T20:07:30.147 回答
3

我通过以下代码修复了 IE9 中的关闭问题:

function getText(el) {
    return el.textContent || el.text;
}
于 2013-02-26T12:54:20.157 回答