下面是我的html代碼:window.getSelection()忽略某些標籤
<div id="text">This is <span class="ignore">some</span> short text.</div>
,當我用鼠標從選擇「是」,以「短」,用低於網上找到的功能,
function getSelectionCharOffsetsWithin(element) {
var start = 0, end = 0;
var sel, range, priorRange;
if (typeof window.getSelection != "undefined") {
range = window.getSelection().getRangeAt(0);
priorRange = range.cloneRange();
priorRange.selectNodeContents(element);
priorRange.setEnd(range.startContainer, range.startOffset);
start = priorRange.toString().length;
end = start + range.toString().length;
} else if (typeof document.selection != "undefined" &&
(sel = document.selection).type != "Control") {
range = sel.createRange();
priorRange = document.body.createTextRange();
priorRange.moveToElementText(element);
priorRange.setEndPoint("EndToStart", range);
start = priorRange.text.length;
end = start + range.text.length;
}
return {
start: start,
end: end
};
}
我將得到開始範圍= 5,終止範圍= 20。 但我想的範圍內計算忽略<span class="ignore">
使得我只得到啓動範圍= 5和結束範圍= 14。
我將文本複製到另一個虛擬div之前處理它,但似乎window.getSelection()只會得到原始的,沒有任何專家知道如何忽略<span class="ignore">
內的文本,所以我可以得到準確的範圍?
沒有,其實我想完全「忽略」了的任何文本「跨度類=‘忽略’>」 – 2014-10-01 08:05:45
@MahJinKhai檢查我的更新,例如 – 2014-10-01 08:11:05
但你的代碼是如何能夠忽略的「luctus」如何計算? – 2014-10-01 08:19:53