Есть ли в javascript функция для отмены выделения всего выделенного текста? Я полагаю, это должна быть простая глобальная функция, вроде как document.body.deselectAll();
.
javascript
selection
Лапша Смерти
источник
источник
window.getSelection().removeAllRanges();
работает во всех текущих браузерах. Живая демонстрация: jsfiddle.net/hWMJT/1removeAllRanges()
метод работает во всех современных браузерах для текста внутри абзацев или подобных элементов без формы поля. Для полей формы (например, textarea) этот метод не работает в IE9 и FF5.window.getSelection().removeAllRanges();
первым, потому что соответствующий стандартам проприетарный код всегда должен выполняться последним . Будь то код, соответствующий стандартам 2004 года или 4004, в конечном итоге всегда будет тем, чем мы пользуемся, поэтому сначала определите его без исключения!Вот версия, которая очистит любой выбор, в том числе в текстовых полях и текстовых областях:
Демо: http://jsfiddle.net/SLQpM/23/
источник
<div>
тоmouseup
событие не срабатывает. Вместо этого поместите обработчик mouseup в документ, и все будет хорошо: jsfiddle.net/SLQpM/23Для Internet Explorer вы можете использовать пустой метод объекта document.selection:
Для кросс-браузерного решения см. Этот ответ:
Очистить выделение в Firefox
источник
document.selection.clear()
работает только в IE. См. Здесь: jsfiddle.net/9spL8/4 Кроме того, этот метод удалит выделенный текст, а не просто отменит его выбор. Чтобы просто отменить выделение текста, используйтеdocument.selection.empty()
вместо него.Для
textarea
элемента, содержащего не менее 10 символов, следующий элемент сделает небольшой выбор, а затем через полторы секунды отменит выбор:источник
Для меня это сработало невероятно проще ...
или
Кредиты: https://riptutorial.com/javascript/example/9410/deselect-everything-that-is-selected
источник