Javascript和Firefox中基于jQuery的HTML解析:无法解释行为

jQuery-based HTML parsing in Javascript and Firefox: can't explain behavior

本文关键字:解析 HTML 无法解释 jQuery Firefox Javascript      更新时间:2023-09-26

我正在编写一个小脚本来在jQuery的帮助下解析HTML页面;虽然我的脚本在Chrome,IE和Safari中可以正常工作,但我无法解释它在Firefox(版本36.0.1)中的行为。在这里:

$.ajax({
    url: 'myURL.aspx',
    async: false,
    success: function (data) {
    html = $.parseHTML(data, document, true);
    $.each(html, function (i, el) {
        if (el.nodeName === "FORM") {
            $.each(el.childNodes, function (j, n) {
                if (typeof n != "undefined") {
                    if (n.nodeName === "SCRIPT") {
                        if (typeof n.innerText != "undefined") {
                            if (n.innerText.indexOf("...") != -1) {
                                if (n.nodeType == 1) {
                                    $("body").append(n);
                                }
                            }
                        }
                    }
                }
            });
        }
    });
}

});

问题是,我在调用append的线路上设置了一个断点,如果我在调试器第一次中断时检查n的属性,我看到n.nodeName不是SCRIPTn.innerTextundefinedn.nodeType3。有什么我完全误解的地方吗?

看起来Firefox 36.0.1在属性innerText方面并不完全可以,毕竟(感谢apsillers!我用textContent替换了它,现在脚本可以在Firefox,Chrome,IE和Safari中使用。