IE中的createTreeWalker - 有限制吗?

时间:2015-08-23 04:10:36

标签: javascript internet-explorer

createTreeWalker在IE 10-11中可以接受的节点数量是否存在静态限制?最近我一直在构建一个应用程序,它运行一系列节点来确定显示哪些节点和哪些不是。我认为问题可能是我拥有的节点数量。由于它是我所展示的格式化的书,至少可以有50.000个节点。

我当前导致此问题的Walker代码是:

var walker = document.createTreeWalker(
    element,
    NodeFilter.SHOW_ELEMENT,
    {
        acceptNode: function(nodeItem) {
            return NodeFilter.FILTER_ACCEPT;
        }
    },
    false
);

var node;

while(node = walker.nextNode()) {
    visibleElements.push(node);
}

似乎找不到任何文档声称可能存在静态限制,即步行者可以在IE中处理多少个节点。但是你在错误信息中看到的就是我得到的一切。错误异常指向含有"而(..."

其他人有这个问题发生在他们身上吗?

1 个答案:

答案 0 :(得分:2)

好的 - 经过一些激烈的调试后,我发现通过MSDN文档,每个其他浏览器上的参数都是指定 acceptNode 的对象。而是指定为一个函数。它没有包含在索引 acceptNode

的对象中

IE。为了上帝的爱。给我们一些信息性例外:)