瘦长 |如何使用 span 标签上的点击事件删除突出显示的文本?

Rangy | How to remove highlighted text with click event on span tag?

正如rangy library所说,我们需要select text使其高亮和移除高亮。

为了突出显示它包括span tag

为了删除突出显示的文本,我想单击 span tag 而不是 select 该文本。

这是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.

我想大家明白我的问题就够了。

如果你愿意,我可以给出更多的描述。

我可以不使用它来占用与api.getSelection()相同的selection variable吗?

或者我做了什么来实现它?

如有任何建议,我将不胜感激。

谢谢

假设你想要的是能够点击一个高亮来摆脱它,我建议如下(支持IE 6-8;不知道你是否需要)但 Rangy 支持它)。关键方法是 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] );
    }
};