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
如果你真的瞭解代碼,如果你知道如何編碼你會跟蹤它。不知何故,這是一個問題。雙擊文本然後一些恢復正常是不正常的。無論如何,我明白你的一面。 –
「不知何故,這是一個問題。」但問題是什麼?或者:您雙擊,突出顯示一些文字,但某些應該突出顯示的文字未突出顯示,這是問題所在。或者:你雙擊,突出顯示一些文字,代碼不會正確捕捉所有突出顯示的文字,使其看起來像一些文字實際上沒有突出顯示。或者:雙擊,突出顯示一些文本,某些文本沒有突出顯示(無論出於何種原因預期),但在這些情況下,代碼會以某種方式混淆。這將有助於有更多的細節,或一個工作示例來查看問題所在。 – Whothehellisthat