27.01.2024, 10:48
|
Профессор
|
|
Регистрация: 05.07.2009
Сообщений: 222
|
|
Можно ли в IE 11 убрать выделение текста в textarea?
Javascript производит некие манипуляции с текстом в поле textarea. Но есть одна странная особенность: чаще всего весь текст в этом поле textarea после выполнения скрипта становится выделенным. Можно ли каким-то способом принудительно убрать выделение текста в textarea в IE 11? В других браузерах всё ок, но победить IE 11 не получается. Буду признателен за советы по теме.
P.S. Выкинуть IE 11 - не предлагать!
|
|
27.01.2024, 11:31
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,751
|
|
Попробуй
window.getSelection().removeAllRanges();
|
|
27.01.2024, 18:32
|
Профессор
|
|
Регистрация: 05.07.2009
Сообщений: 222
|
|
Первым делом попробовал. Не работает. Один из специалистов сказал, что это невозможно, что IE 11 "не дрессируется".
|
|
27.01.2024, 19:47
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,797
|
|
javascript_pupil, не пробовали создать input и перенести на него фокус?
Как то так:
<textarea rows="7" cols="50">
Lorem ipsum dolor sit amet consectetur adipisicing elit.
Beatae praesentium autem sint similique aliquid quos molestiae
deserunt, perspiciatis quaerat necessitatibus maiores consequatur
sed est eaque? Modi, quasi iusto. Ut, architecto?
</textarea>
<script>
var textarea = document.querySelector("textarea");
textarea.focus();
textarea.select();
setTimeout(() => {
var input = document.createElement("input");
input.style.cssText = `position: absolute; top: 0; left: 0; opacity: 0;`;
document.body.appendChild(input);
input.focus();
input.parentNode.removeChild(input);
}, 1000);
</script>
Последний раз редактировалось Nexus, 27.01.2024 в 19:54.
Причина: Вряд ли ie поддерживает focusOptions.preventScroll :\
|
|
28.01.2024, 09:16
|
Профессор
|
|
Регистрация: 05.07.2009
Сообщений: 222
|
|
И такой подход пробовал, но безуспешно.
Если я добавляю данный конкретный код, то функция перестает работать, а в консоли получаю следующую ошибку:
------------
"myScript" не определено
------------
Где "myScript" - это название моей функции, в результате работы которой текст в textarea становится выделенным. Как с этой ошибкой бороться я не знаю.
|
|
28.01.2024, 09:33
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,751
|
|
Сообщение от javascript_pupil
|
Если я добавляю данный конкретный код, то функция перестает работать, а в консоли получаю следующую ошибку:
------------
"myScript" не определено
|
А куда вы добавляете? Кусок
setTimeout(() => {
var input = document.createElement("input");
input.style.cssText = `position: absolute; top: 0; left: 0; opacity: 0;`;
document.body.appendChild(input);
input.focus();
input.parentNode.removeChild(input);
}, 1000);
надо добавить или в саму функцию в конце, или сразу после ее вызова
1000 многовато, я бы 4 поставил.
|
|
28.01.2024, 12:13
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,797
|
|
Сообщение от voraa
|
1000 многовато, я бы 4 поставил
|
Задержку в секунду я поставил, чтобы в примере было видно, что выделение действительно снимается после переноса фокуса
ps. ну и не стоит в ie даже пытаться использовать стрелочные функции.
Последний раз редактировалось Nexus, 28.01.2024 в 12:16.
|
|
28.01.2024, 13:43
|
Профессор
|
|
Регистрация: 05.07.2009
Сообщений: 222
|
|
Пробовал я по всякому. Толку ноль. Если даже эту страницу открыть в IE 11 и нажать на "Посмотреть", то ничего не происходит, хотя в других браузерах текст выделяется, а потом выделение снимается. Да за 1 секунду его заметно.
Заменял даже этим кодом свою функцию. Он даже не выделяет текст в IE 11. В других браузерах выделяет и гаснет, а IE 11 не реагирует никак.
|
|
28.01.2024, 13:59
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
Попробуйте удалить textarea и вернуть обратно
var parentNode = textarea.parentNode;
var currentIndex = [].indexOf.call(textarea.children, textarea);
parentNode.removeChild(textarea);
setTimeout(function() {
parentNode.insertBefore(textarea, parentNode.children[currentIndex]);
}, 0);
Но скорее всего у вас проблема вообще в другом, не может быть такого, что выделение не снималось совсем
|
|
28.01.2024, 14:46
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,751
|
|
Сообщение от javascript_pupil
|
Если даже эту страницу открыть в IE 11 и нажать на "Посмотреть", то ничего не происходит,
|
И ошибок в консоле нет?
|
|
|
|