在 IE 10-11 中,createTreeWalker 可以接受的节点数量是否有静态限制?最近,我正在构建一个应用程序,该应用程序运行一系列节点以找出显示哪些节点和未显示哪些节点。我认为问题可能在于我拥有的节点数量。由于我展示的是一本格式化的书,因此至少可能有 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 中 walker 可以处理的节点数量可能存在静态限制。但你在错误消息中看到的就是我所得到的。错误异常指向包含“while(...”的石灰
还有其他人遇到过这个问题吗?
最佳答案
好吧 - 经过一番激烈的调试后,我发现通过 MSDN 文档,每个其他浏览器上的参数都是指定 acceptNode 的对象。相反,指定为函数。它没有包装在索引为 acceptNode
的对象中IE。为了上帝的爱。为我们提供一些信息丰富的异常(exception)情况:)
关于javascript - IE 中的 createTreeWalker - 有限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32163076/