Ниже мой 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
};
}
Я получу Start Range = 5, End Range = 20. Но я хотел бы расчет расстояния игнорировать <span class="ignore">
так, что я получаю только начать диапазон = 5 и конечный диапазон = 14.
Я дублирую текст на другой фиктивный div перед его обработкой, но кажется, что window.getSelection() получит только оригинал, знает ли какой-либо эксперт, как игнорировать текст внутри <span class="ignore">
, чтобы я мог получить точный диапазон?
нет, на самом деле я хочу, чтобы полностью «игнорировать» любой текст в «классе диапазона =„игнорировать“>» –
@MahJinKhai проверить мой обновленный пример –
но, как ваш код может игнорировать расчет на «luctus»? –