Как я могу избежать выделения выделенного текста после отключения текстовой области? (Chrome) - PullRequest
0 голосов
/ 13 июля 2020

Странная проблема в Chrome 83 (отлично работает в FF 78):

  1. Я выделяю текст в текстовой области -> он выделяется
  2. Я нажимаю в другом месте -> текстовая область теряет фокус, выделенный текст по-прежнему выделяется
  3. текстовая область отключена (javascript) -> выделенный текст по-прежнему остается выделенным - странно!

Установка диапазона выбора на ноль не помогает. Установка для user-select значения none тоже не помогает. Очистка выбора окна / документа через javascript также не имеет никакого эффекта. Выделенный текст сохраняется. Единственное, что помогает: выберите другой текст на этой веб-странице.

Это ошибка? Могу ли я сделать что-нибудь для активного удаления выделения текста / выделения текста с помощью css / javascript?

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 13 июля 2020

Вы должны иметь возможность использовать selection.removeAllRanges() или selection.empty(), в зависимости от возраста браузера. Я использую здесь событие mouseout, потому что, по крайней мере, для меня щелчок за пределами текстовой области очищает выбор независимо от того.

document.getElementById('test').addEventListener('mouseout', function() {
    document.getElementById('test').disabled = true;
    var sel = window.getSelection ? window.getSelection() : document.selection;
    if (sel) {
        if (sel.removeAllRanges) {
            sel.removeAllRanges();
        } else if (sel.empty) {
            sel.empty();
        }
     }
});
<textarea id="test"></textarea>
...