Rangy |如何使用span标记上的click事件删除突出显示的文本?

时间:2015-04-08 05:02:42

标签: javascript rangy

正如rangy library所说,我们需要选择text以突出显示并删除突出显示。

要突出显示,请添加span tag

要删除高亮文字,我想点击span tag而不是选择该文字。

这是library方法用于删除突出显示:

 unhighlightSelection: function(selection) {
                selection = selection || api.getSelection();
                console.log(selection.getAllRanges())
                var intersectingHighlights = this.getIntersectingHighlights( selection.getAllRanges() );
                this.removeHighlights(intersectingHighlights);
                selection.removeAllRanges();
                return intersectingHighlights;
            }

这里selection变量占用api.getSelection()而不是local selection variable

我认为你们所有人都能理解我的问题。

如果你愿意的话,我可以提供更多相关的描述。

在不使用selection variable的情况下,我可以做一些与api.getSelection()相同的事情吗?

或我做了什么来实现它?

任何建议都会对我表示感激。

谢谢

1 个答案:

答案 0 :(得分:4)

假设您想要的是能够点击突出显示以摆脱它,我建议类似以下内容(它支持IE 6-8;我不知道您是否需要它但朗伊支持它)。关键方法是getHighlightForElement()removeHighlights()

document.onclick = function(e) {
    e = e || window.event;
    var target = e.target || e.srcElement;
    var highlight = highlighter.getHighlightForElement(target);
    if (highlight) {
        highlighter.removeHighlights( [highlight] );
    }
};