Указывает выделенный текст, даже если текстовая область не имеет фокуса - PullRequest
0 голосов
/ 09 июня 2019

Как в Firefox, так и в Chrome выбор текста в текстовом поле (= диапазон текста, выделенного в поле) указывается только тогда, когда это поле имеет фокус.Выделение существует , даже если поле не имеет фокуса - его можно запрашивать из JavaScript, и оно снова становится видимым, если поле восстанавливает фокус таким образом, чтобы это не изменило выделение - но,это не видно пользователю.(См. Пример фрагмента кода ниже. Выделите любой текст, который вы хотите, в поле <textarea>; затем используйте Tab и Shift + Tab для перемещения фокуса назад и назад. Ваш текст отображается только выделенным, когда поле имеет фокус.)

Есть ли способ переопределить это поведение?

Некоторые примечания:

  • Я пытался использовать CSS ::selection псевдоэлемент с правилами для установкицвет и цвет фона, но это не помогло;правила применялись только тогда, когда поле было в фокусе.
  • Я бы предпочел сделать это только с помощью HTML / CSS / JavaScript (без вмешательства пользователя), но я открыт для использования настроек браузера при необходимости.
  • Мне все равно, выглядит ли выделение таким же без фокуса, как с фокусом, если оно видимое в обоих случаях.
  • Мне в основном нужно поддерживать Firefox, но, если возможно, я бы хотел поддерживать и другие современные браузеры.
  • Мне все равно, отображается ли выделение, когда оно имеет нулевую длину (=, когда это просто курсорположение).

<textarea rows="2" cols="15">Hello, world!</textarea>

1 Ответ

0 голосов
/ 09 июня 2019

Вы пытались использовать определенные элементы выделения для Firefox в CSS?Похоже, что элемент реализован только в Firefox таким образом (версия 2-61 после этого исправлена):

::-moz-selection {

}
...