Есть ли функция для отмены выбора всего текста с помощью JavaScript?
есть ли функция в javascript, чтобы просто отменить выбор всего выделенного текста? Я считаю, что это должна быть простая глобальная функция, такая как document.body.deselectAll();
или что-то.
4 ответа:
попробуйте это:
function clearSelection() { if (window.getSelection) {window.getSelection().removeAllRanges();} else if (document.selection) {document.selection.empty();} }
это очистит выбор в обычном HTML-контенте в любом крупном браузере. Он не будет очищать выделение в текстовом вводе или
<textarea>
в Firefox.
вот версия, которая очистит любой выбор, в том числе в текстовых вводах и текстовых областях:
Demo: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; } } } }
для Internet Explorer, вы можете использовать пустой метод документа.объект выбора:
документ.выбор.пустой();
для кросс-браузерного решения см. Этот ответ:
на
textarea
элемент с не менее чем 10 символами следующее сделает небольшой выбор, а затем через полторы секунды снимите его:var t = document.getElementById('textarea_element'); t.focus(); t.selectionStart = 4; t.selectionEnd = 8; setTimeout(function() { t.selectionStart = 4; t.selectionEnd = 4; },1500);