Как сделать акцент на конце текста в поле ввода поиска Google?

Как сфокусироваться на конце текста в поле ввода с помощью Javascript.

Я хочу навести мышку на поле ввода, чтобы сфокусироваться на нем, а ругательство в конце текста.

Я просто использую Event как следующее, проклятие на первом.

    document.addEventListener('mouseover', function (e) {
        if (e.target.localName ==='input'){
            e.target.focus();
        }
    });

    document.addEventListener('mouseout', function (e) {
            e.target.blur();
    });
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
344
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

При фокусировке ввода вы можете стереть введенное значение и снова установить то же значение.

 document.addEventListener('mouseover', function (e) {
  if (e.target.localName ==='input'){
    e.target.focus();
    var val = e.target.value; //store the value of the element
    e.target.value = '';      //clear the value of the element
    e.target.value = val;     //set that value back. 
  }
});

document.addEventListener('mouseout', function (e) {
  e.target.blur();
});
<input id = "search" type = "text" size = "30" name = "search"/>

это работает для вас, @lyscop? если так, не могли бы вы проголосовать?

Prime 12.12.2020 09:24

На самом деле не уверен, что изменение значения здесь является хорошей идеей, поскольку могут быть другие функции, которые могут повлиять на изменение значения этого поля ввода.

HymnZzy 12.12.2020 09:29

Он восстанавливает значение немедленно, так что проблем не будет.

Prime 12.12.2020 09:33

Независимо от этого, изменение значения туда и сюда для достижения чего-то не является хорошей практикой. К нему будет прикреплена какая-то неизвестная функция, и она может непреднамеренно сработать при изменении этого свойства, особенно это применимо, если вы используете некоторые библиотеки/плагины :)

HymnZzy 12.12.2020 09:37
Ответ принят как подходящий

Более безопасное решение, при котором вы не изменяете содержимое/значение поля ввода, — активировать выбор значения.

document.addEventListener('mouseover', function (e) {
  let elm = e.target;
  if (elm.localName ==='input'){
    elm.focus();
    elm.selectionStart = elm.value.length;
    elm.selectionEnd = elm.value.length;
  }
});

document.addEventListener('mouseout', function (e) {
  e.target.blur();
});
<input value = "hello"/>

Спасибо, это лучше, чем первое, которое изменяет значение и влияет на функцию, которая отображает всплывающую панель значков при фокусировании поля ввода.

lyscop 12.12.2020 09:47

@lyscop .. рад узнать. Пожалуйста, отметьте ответ, который работает для вас, как решение, чтобы этот вопрос был закрыт.

HymnZzy 12.12.2020 09:49

К сожалению, это показывает ошибку, e.target.selectionStart = e.target.value.length; Невозможно прочитать свойство «длина» неопределенного

lyscop 12.12.2020 19:07

это не e . должно быть elm .. правильно проверьте код.

HymnZzy 12.12.2020 19:08

@lyscop .. вы можете опубликовать код, который вы используете?

HymnZzy 12.12.2020 19:12

Выложил на Greasyfork greasyfork.org/ru/scripts/…

lyscop 12.12.2020 19:15

@lyscop отлично работает для меня

HymnZzy 12.12.2020 19:20

Я считаю, что если ввод равен нулю, SelectionStart может получить значение, следует ли мне добавить судью? i.imgur.com/uSnMeAD.png

lyscop 13.12.2020 05:00

Вы уверены, что поле Google работает как поле ввода? Я так не думаю.

HymnZzy 13.12.2020 05:03

Ага, так это поле ввода не должно быть нулевым, добавляю судью if (e.target.value){

lyscop 13.12.2020 05:09

Другие вопросы по теме