Есть ли функция в javascript, чтобы просто отменить выбор всего выделенного текста? Я полагаю, что это была простая глобальная функция, например document.body.deselectAll();
или что-то в этом роде.
Есть функция отменить выбор всего текста с помощью JavaScript?
Ответ 1
Попробуйте следующее:
function clearSelection() {
if ( document.selection ) {
document.selection.empty();
} else if ( window.getSelection ) {
window.getSelection().removeAllRanges();
}
}
Это очистит выбор в обычном HTML-контенте в любом крупном браузере. Он не очистит выбор в текстовом вводе или <textarea>
в Firefox.
Ответ 2
Здесь версия, которая очистит любой выбор, в том числе в текстовых вводах и текстовых областях:
Демо: http://jsfiddle.net/SLQpM/23/
function clearSelection() {
var sel;
if ( (sel = document.selection) && sel.empty ) {
sel.empty();
} else {
if (window.getSelection) {
window.getSelection().removeAllRanges();
}
var activeEl = document.activeElement;
if (activeEl) {
var tagName = activeEl.nodeName.toLowerCase();
if ( tagName == "textarea" ||
(tagName == "input" && activeEl.type == "text") ) {
// Collapse the selection to the end
activeEl.selectionStart = activeEl.selectionEnd;
}
}
}
}
Ответ 3
Для Internet Explorer вы можете использовать пустой метод объекта document.selection:
document.selection.empty();
Для кросс-браузерного решения см. этот ответ: