如果我有以下 HTML:
<div class="content">
Vivamus <span>luctus</span> urna sed urna ultricies ac tempor dui sagittis.
</div>
然后我运行一个事件mouseup
来查看所选文本的范围:
$(".content").on("mouseup", function () {
var start = window.getSelection().baseOffset;
var end = window.getSelection().focusOffset;
if (start < end) {
var start = window.getSelection().baseOffset;
var end = window.getSelection().focusOffset;
} else {
var start = window.getSelection().focusOffset;
var end = window.getSelection().baseOffset;
}
console.log(window.getSelection());
console.log(start + ", " + end);
});
我Vivamus
从内容中选择单词,它会记录1, 8
,因为那是选择的范围。
但是,如果urna
我选择单词,它将记录15, 20
,但不会考虑<span>
HTML 的元素。
无论如何,是否存在focusOffset
并且baseOffset
也可以计算 HTML 标签,而不仅仅是文本?