- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 createNodeIterator 在我的文档中查找单词。
实际上,我几乎使用了来自 MDN 和 MSDN 的示例代码:
这在 Chrome 和 Firefox 中按预期工作。
不幸的是,Internet Explorer 11 只是说 Exception occurred.
并在我调用 iterator.nextNode
代码笔: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>
最佳答案
写在 createNodeIterator fails in IE9 when acceptNode is specified您不得为 IE9 - IE11 传递对象,而是直接传递函数:
var iterator = document.createNodeIterator(document.body, NodeFilter.SHOW_TEXT, 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>
关于javascript - IE9 IE 10 IE11 createNodeIterator - "Exception occurred.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45595349/
谁能用一个例子来解释 BooleanQuery 中 lucene 中的 BooleanClause.Occur.Must 和 BooleanClause.Occur.SHOULD 之间的区别? 最佳答
正如标题所说,multiset 在所有相同值的范围末尾插入一个值。 (例如:在多重集 1,2,2,3 中插入 2 使其成为 1,2,2,/*new*/2,3)。 如何在所有相同值范围的开头插入新值?
所以这是与此(Inserting in a multiset: before the first occurence of that value instead of after the last o
我试图从我的 WCF .Net Framework 4.5 向 API rest 发布一个文件。这是我的代码: public string CreateConclusion(string[] inst
我的 SQL 查询获取固件的错误修复验证列表,例如def-456 是一张票,要求我对产品进行固件测试。 def-456 有几个记录结果的子任务。结果记录为:id:abc-123、abc-124、abc
我想删除文件中多次出现的行,但想保留某些行。我该怎么做? 这是我的文件的一部分,我想更改它: §M: 1, K: 2 name, time, cycle, instr, L1-mi
我正在 SSMS 中测试 SQL 2016 Live Query Stats,每次尝试时都会收到错误消息“执行批处理时出错。错误消息是:发生一个或多个错误。”并且不返回任何结果集。一位同事试过了,对他
我们在 JBoss 4.2 上设置了一个水平集群。在我们将缓存模式从 REPL_ASYNC 更改为 REPL_SYNC 以解决问题之前, session 复制工作正常。我们开始看到一些 session
我正在尝试将 MVC 网站发布为 Azure 网络角色。 当我在本地运行它时,一切正常。 但是当我将其发布到 Azure 并浏览某些 MVC 操作时,我收到此错误: Server Error in '
假设一个静态库 libfoo 依赖于另一个静态库 libbar 的某些功能。这些和我的应用程序都是用 D 编写的。如果我的应用程序只直接使用 libfoo,并且只调用 libfoo 中的函数而不引用
我正在尝试在 Eclipse Helios 上安装 SVN 客户端, 我已经从 Collaboration 节点安装了所有 SVN 模块(更新中), 现在重启后我可以选择一个连接器 出现“颠覆性连接器
我在 cakephp 中有一些代码会产生错误。 这是 PHP Controller : $this->loadModel( 'Vote' ); //Newly added by amit start
我需要有关 Java 代码的帮助。 这就是问题所在: 输入示例:AaaaaAa 输出:A 出现 7。 问题是我需要它来忽略案例。 请帮助我,我的代码工作正常,只是它不忽略大小写。 import jav
我正在为 J2ME 开发一个应用程序,有时它完全卡住并且 AMS 需要相当长的时间来关闭它.在我看来,这像是一个死锁问题。 你能告诉我什么会导致死锁吗?例如,如果对象调用其自身的另一个同步方法,调用对
尝试将 DEXguard 安装到 Eclipse 中的简单应用程序时出现以下错误: Errors occurred during the build. Errors running builder '
在 SAS 中,假设我有一个名为“person_groups”的数据集。它有两个变量,名为“person”和“group”。该数据集只是将每个人分配到一个组。 我如何从这个数据集中删除所有在他们的组中
有人知道如何在表达式中找到第 n 次出现的字符串以及如何用正则表达式替换它吗? 例如我有以下字符串 txt sub("(^(.*?-){4}.*?)-(.*?-.*?)-", "\\1|\\3||"
是否有一个包允许我为同一个缓冲区设置多个 Occur 结果缓冲区(例如 grep-a-lot: http://www.emacswiki.org/emacs/grep-a-lot.el )。 我在分析
我一直在寻找这个,但似乎无法找到它。 我有一个带有 try {} catch {} 语句的脚本。如果没有发生错误,我想添加一个操作。 例如 try { something } catch { "Err
我正在从 iPhone 应用程序将照片上传到 Facebook。我已经让它工作了,只是有时它会返回“发生未知错误”。我不确定问题是什么。这种情况发生的概率约为 75%。 其他人也遇到过这种情况吗? 最
我是一名优秀的程序员,十分优秀!