Pho*_*Jon 2 javascript dom highlight selection
我使用JavaScript使用以下代码突出显示了所选文本:
var sel = window.getSelection();
if(!sel.isCollapsed) {
var range = sel.getRangeAt(0);
sel.removeAllRanges();
document.designMode = "on";
sel.addRange(range);
document.execCommand("HiliteColor", false, "#ffffcc");
sel.removeAllRanges();
document.designMode = "off";
}
Run Code Online (Sandbox Code Playgroud)
如何删除突出显示的颜色并恢复文本?
这里有一些代码可以添加和删除高亮显示.实际发布这里太长了,所以我做了一个演示并在下面发布了一个片段.它并不是很理想,因为该unhighlight()函数不会删除<span>突出显示命令所插入的元素,但需要注意的是这可能是一个可能的添加.
现场演示:http://jsfiddle.net/timdown/Bvd9d/
代码段:
function unhighlight(node, colour) {
if (!(colour instanceof Colour)) {
colour = new Colour(colour);
}
if (node.nodeType == 1) {
var bg = node.style.backgroundColor;
if (bg && colour.equals(new Colour(bg))) {
node.style.backgroundColor = "";
}
}
var child = node.firstChild;
while (child) {
unhighlight(child, colour);
child = child.nextSibling;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7182 次 |
| 最近记录: |