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中处理多少个节点。但是你在错误信息中看到的就是我得到的一切。错误异常指向含有"而(..."
其他人有这个问题发生在他们身上吗?
答案 0 :(得分:2)
好的 - 经过一些激烈的调试后,我发现通过MSDN文档,每个其他浏览器上的参数都是指定 acceptNode 的对象。而是指定为一个函数。它没有包含在索引 acceptNode
的对象中IE。为了上帝的爱。给我们一些信息性例外:)