javascript - IE 中的 createTreeWalker - 有限制吗?

标签 javascript internet-explorer

在 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/

相关文章:

javascript - 删除包含 JavaScript 中特定单词的 JSON 值

javascript - 通过多个元素重复脚本

internet-explorer - 如何在 Internet Explorer 中接收 GCM/FCM 通知?

在下拉列表中选择项目时,jQuery 在 IE 中不起作用

javascript - PHP - 将隐藏值传递给 jquery

PHP 幻灯片无法在 Internet Explorer 上运行

javascript - AngularJS - 在另一个图像之上显示图像

html - 响应式列宽在 Internet Explorer 中没有响应

css - 为什么 IE 和 Edge 会忽略整个 CSS 规则?

html - 即使使用 meyer 重置,Chrome 和 IE9 之间的 CSS 不一致?