Как в Firefox, так и в Chrome выбор текста в текстовом поле (= диапазон текста, выделенного в поле) указывается только тогда, когда это поле имеет фокус.Выделение существует , даже если поле не имеет фокуса - его можно запрашивать из JavaScript, и оно снова становится видимым, если поле восстанавливает фокус таким образом, чтобы это не изменило выделение - но,это не видно пользователю.(См. Пример фрагмента кода ниже. Выделите любой текст, который вы хотите, в поле <textarea>
; затем используйте Tab и Shift + Tab для перемещения фокуса назад и назад. Ваш текст отображается только выделенным, когда поле имеет фокус.)
Есть ли способ переопределить это поведение?
Некоторые примечания:
- Я пытался использовать CSS
::selection
псевдоэлемент с правилами для установкицвет и цвет фона, но это не помогло;правила применялись только тогда, когда поле было в фокусе. - Я бы предпочел сделать это только с помощью HTML / CSS / JavaScript (без вмешательства пользователя), но я открыт для использования настроек браузера при необходимости.
- Мне все равно, выглядит ли выделение таким же без фокуса, как с фокусом, если оно видимое в обоих случаях.
- Мне в основном нужно поддерживать Firefox, но, если возможно, я бы хотел поддерживать и другие современные браузеры.
- Мне все равно, отображается ли выделение, когда оно имеет нулевую длину (=, когда это просто курсорположение).
<textarea rows="2" cols="15">Hello, world!</textarea>