JavaScript GetSelection вопрос
if (!window.x) {
x = {};
}
x.Selector = {};
x.Selector.getSelected = function() {
if (window.getSelection) {
t = window.getSelection();
} else if (document.getSelection) {
t = document.getSelection();
} else if (document.selection) {
t = document.selection.createRange().text;
}
return t;
}
function htmlSpanHlt() {
element = document.createElement("span");
element.setAttribute('class', 'hlt');
return element;
}
function highlight_text(sel) {
span = htmlSpanHlt();
if (sel.getRangeAt) {
range = sel.getRangeAt(0);
}
span.appendChild(range.extractContents());
range.insertNode(span);
}
<div class="highlight">
<p>
Lorem ipsum dolor sit amet, eu ius autem labitur complectitur, eos aliquip nostrud ei, ludus erroribus vel ex. Sea ex erat quaeque intellegam, et diam iusto deterruisset sea. Summo minimum periculis pro ea, diam soleat id pro. Cu putent inimicus eum,
hinc comprehensam ex qui. Delectus appetere interesset ad mel.
<br>
<br>Ius ut quis summo utroque, in sea numquam percipit eloquentiam. Vidit mucius iudicabit ius id. Id mel vero dolorem. Sale lorem tempor ius ex, commodo reprehendunt pro cu. Mel ea accumsan mentitum liberavisse, labores fabellas per te.
</p>
</div>
Когда я выделяю текст, как правило, как перетаскивание мыши все будет хорошо. Проблема заключается в следующем: пример, когда я дважды нажимаю текст много раз или даже один раз, конечно, все будет выбрано, но текст, который уже выделен, вернется в нормальное состояние. Можете ли помочь мне решить эту проблему? большое спасибо.
Он должен работать так, как ожидалось; что происходит? Я не вижу проблемы из того, что вы сейчас дали. Хорошо, что вы включили код, но могли бы вы привести его в рабочий пример с помощью jsfiddle или подобного? Это поможет нам понять, что происходит не так. – Whothehellisthat
, если вы действительно понимаете код, если вы знаете, как код u будет отслеживать его. Как-то это проблема. это не нормально, когда дважды щелкните текст, а затем вернитесь в нормальное состояние. Я все равно понимаю вашу сторону. –
«Как-то это проблема». Но в чем проблема? Либо: вы дважды щелкаете, что выделяет текст, но какой-то текст, который должен быть выделен, не выделяется, и это проблема. Или: вы дважды щелкаете, выделяете текст, код не фиксирует весь выделенный текст правильно, делая его _seem_, как часть текста на самом деле не выделяется. Или: дважды щелкните, выделите какой-то текст, какой-то текст не подсвечивается (по какой-либо причине), но в этих случаях ваш код каким-то образом запутывается. Это помогло бы иметь больше специфики или рабочий пример для _see_, в чем проблема. – Whothehellisthat