javascript - Rangey:获取选定节点的新方法

标签 javascript rangy

看起来最新的 Alpha 版本的 rangy 已经弃用了 createNodeIterator() 方法,并用更通用的 createIterator() 方法代替。使用它的语法似乎也有点不同。

假设用户已经浏览并对文档进行了多项选择,并将 CSS 类应用于这些选择。我的目标是确保用户无法对已经具有范围应用的 CSS 类的文本进行重叠选择。

我仍然可以使用 createIterator 函数来执行此操作吗?是否有内置函数可以帮助我解决这个问题?

最佳答案

我采用了这个解决方案:

var isHighlighted = false,
range = rangy.getSelection().getRangeAt(0);

var it = range.getNodes([3], function(node) {
    return node.parentNode.tagName == 'SPAN' && node.parentNode.className == 'highlight';
});

if (it.length > 0)
    isHighlighted = true;

return isHighlighted;

关于javascript - Rangey:获取选定节点的新方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24455145/

相关文章:

javascript - 如何从选项对象内部调用一个 Action ?

javascript - 如何从 chart.js 的 html 表中动态添加元素

javascript - 在iframe设计模式下获取插入符的父元素

Javascript:在数据库中获取和保存文本选择范围

javascript - 范围循环中的范围操作 DOM

javascript - jQuery 插件中的 If 语句

javascript - 外部 vendor 脚本(JS、Jquery)在 ReactJS 中渲染后不起作用

android - 范围反序列化不适用于 webview android

javascript - 复制功能不适用于突出显示的文本

javascript - 使用 rangy 库获取所选文本的父节点