正如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()
相同的事情吗?
或我做了什么来实现它?
任何建议都会对我表示感激。
谢谢
答案 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] );
}
};