Я обрабатываю событие dblclick на промежутке в моем веб-приложении. Побочным эффектом является то, что двойной щелчок выделяет текст на странице. Как я могу предотвратить этот выбор?
294
Я обрабатываю событие dblclick на промежутке в моем веб-приложении. Побочным эффектом является то, что двойной щелчок выделяет текст на странице. Как я могу предотвратить этот выбор?
function clearSelection() {
if(document.selection && document.selection.empty) {
document.selection.empty();
} else if(window.getSelection) {
var sel = window.getSelection();
sel.removeAllRanges();
}
}
Вы также можете применить эти стили к span для всех браузеров не IE и IE10:
span.no_selection {
user-select: none; /* standard syntax */
-webkit-user-select: none; /* webkit (safari, chrome) browsers */
-moz-user-select: none; /* mozilla browsers */
-khtml-user-select: none; /* webkit (konqueror) browsers */
-ms-user-select: none; /* IE10+ */
}
-ms-user-select: none;
см. Blogs.msdn.com/b/ie/archive/2012/01/11/… @PaoloBergantinoВ простом JavaScript:
Или с помощью jQuery:
источник
return false
использованного,event.preventDefault()
который не убивает никаких других обработчиков, которые могут возникнуть в mousedown.element
, да.Чтобы предотвратить выделение текста ТОЛЬКО после двойного щелчка:
Вы можете использовать
MouseEvent#detail
собственность. Для событий mousedown или mouseup это 1 плюс текущее количество кликов.См. Https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail
источник
(event.detail === 2)
чтобы действительно предотвратить ТОЛЬКО двойной щелчок (а не тройной щелчок и т. Д.)FWIW, я поставил
user-select: none
на родительский элемент этих дочерних элементов , которые я не хочу как - то выбирается при двойном щелчке в любом месте родительского элемента. И это работает! Классная вещьcontenteditable="true"
, выбор текста и т. Д. Все еще работает на дочерних элементах!Так вроде:
источник
style="user-select: note"
повсюду разбирала проблему, которую я пытался решить :)Простая функция Javascript, которая делает содержимое внутри элемента страницы недоступным для выбора:
источник
Для тех, кто ищет решение для Angular 2+ .
Вы можете использовать
mousedown
вывод ячейки таблицы.И предотвратить, если
detail > 1
.dblclick
Выход продолжает работать , как ожидалось.источник
или на Mozilla:
На IE,
источник
document.body
.Старый поток, но я придумала решение, которое я считаю более чистым, поскольку оно не отключает все, даже привязанные к объекту, а только предотвращает случайный и нежелательный выбор текста на странице. Это просто и хорошо работает для меня. Вот пример; Я хочу запретить выделение текста, если несколько раз щелкнуть объект с классом «стрелка вправо»:
HTH!
источник
Если вы пытаетесь полностью запретить выделение текста любым методом, а также только двойным щелчком, вы можете использовать
user-select: none
атрибут css. Я тестировал в Chrome 68, но, согласно https://caniuse.com/#search=user-select, он должен работать в других современных браузерах обычных пользователей.Поведенчески, в Chrome 68 он наследуется дочерними элементами и не позволяет выделять текст, содержащийся в элементе, даже если был выбран текст, окружающий и включающий элемент.
источник
Чтобы запретить IE 8 CTRL и SHIFT, нажмите выделение текста на отдельном элементе.
Для предотвращения выделения текста в документе
источник
У меня такая же проблема. Я решил это, переключившись на
<a>
и добавивonclick="return false;"
(чтобы щелкнув по нему не добавить новую запись в историю браузера).источник