IE9 IE 10 IE11 createNodeIterator - "发生异常。"

时间:2017-08-09 15:49:53

标签: javascript internet-explorer-9 internet-explorer-11 internet-explorer-10

我正在使用createNodeIterator查找文档中的单词。

实际上我几乎使用了来自MDN和MSDN的确切示例代码:

这在Chrome和Firefox中正常运行 不幸的是,Internet Explorer 11只是说Exception occurred.并在我致电iterator.nextNode

后停止

Exception occurred.

Error Debugger

Codepen:https://codepen.io/anon/pen/PKmQEe?editors=1011

代码示例:



var iterator = document.createNodeIterator(document.body, NodeFilter.SHOW_TEXT, {
  acceptNode: function acceptNode(node) {
    if (node.parentNode.tagName.toLowerCase() === 'span') {
      return NodeFilter.FILTER_REJECT;
    }

    return NodeFilter.FILTER_ACCEPT;
  }
}, false);

var nextNode = void 0;
var nodes = [];
while (nextNode = iterator.nextNode()) {
  if (nextNode.nodeValue.indexOf('o') > -1) {
    nodes.push(nextNode);
  }
}

console.log(nodes.length);
nodes.forEach(function (node) {
  return node.nodeValue = node.nodeValue.replace('o', 'OO');
});

<p>Lorem</p>
<p>Ipsum</p>
<div><div><div><div><p>Etiam ipsum purus, elementum vitae congue id, scelerisque nec lectus. Sed at urna id nulla elementum rhoncus. Praesent aliquet turpis justo, blandit eleifend sem. In purus eros, commodo vel pretium non, blandit non elit. Mauris tristique velit in neque malesuada congue. Suspendisse luctus varius nisi quis dignissim. Proin magna urna, tristique et adipiscing ut, ultrices ut leo.</p></div><span>Dolor</span></div></div></div>
&#13;
&#13;
&#13;

0 个答案:

没有答案