Есть вход с некоторым текстом. Весь текст в этом вводе должен быть выбран, когда ввод фокусируется (первый щелчок по вводу), и конкретное слово должно быть выбрано, когда происходит второй щелчок по вводу.
Я пытаюсь реализовать ту же функциональность, что и URL-панель в Chrome (версия 74.0.3729.131 (официальная сборка) (64-разрядная версия)).
Текущее поведение ввода вы можете увидеть здесь: https://jsfiddle.net/deaamod1s/rh5mw0e4/23/
Единственное решение, которое я вижу, это проверить - дважды щелкнул ввод или нет, и после этого, если дважды не щелкнул ввод - сделать input.select()
input.onfocus = function(e) {
let hasValueWhenGotFocused = false;
if (input.value) {
hasValueWhenGotFocused = true;
}
setTimeout(() => {
if (hasValueWhenGotFocused && this.className.indexOf("doubleclicked") == -1) {
this.select();
} else {
this.classList.remove("doubleclicked");
}
},400);
}
input.ondblclick = function(e){
this.classList.add('doubleclicked');
}