【发布时间】:2018-09-30 09:08:44
【问题描述】:
我试图让阅读网页的学生突出显示多个文本区域。我有一些可以工作的javascript。 On a mouseup event, it adds a span around the selected text, but it throws a DOMException when the selection crosses another tag (e.g., paragraph) because you end up with improperly nested tags.见:
https://jsfiddle.net/pinecone/or6tjasg/
关于我如何处理这个问题的任何建议?感谢您的帮助。
document.getElementById('highlight-area').addEventListener("mouseup", function(event) {
highlightSelection();
});
function highlightSelection() {
if (window.getSelection) {
var sel = window.getSelection();
if (sel.rangeCount) {
var range = sel.getRangeAt(0).cloneRange();
var extracContents = range.cloneContents();
if (extracContents.childNodes.length === 1) {
range.deleteContents();
var span = document.createElement("span");
span.className = "highlight";
span.appendChild(extracContents);
range.insertNode(span);
sel.removeAllRanges();
sel.addRange(range);
}
}
}
}
【问题讨论】:
标签: javascript dom highlight