Функция JavaScript Выбирает определенное слово в текстуарее, используя .setselectionRange (). В Firefox текстовая пара автоматически прокручивается, чтобы показать выбранный текст. В Chrome (V14) это не так. Есть ли способ заставить Chrome прокрутить текстура до недавно выбранного текста? JQuery Solutions Добро пожаловать.
На основе идеи от @naXa и @Valeriy Katkov, я совершенствовал функцию с меньшей ошибкой. Это должно работать из поля (Это записано с TypeScript. для JavaScript просто удалите тип declariation):
function scrollTo(textarea: HTMLTextAreaElement, offset: number) {
const txt = textarea.value;
if (offset >= txt.length || offset < 0)
return;
textarea.scrollTop = 0; // Important, so that scrollHeight will be adjusted
textarea.value = txt.substring(0, offset);
const height = textarea.scrollHeight;
textarea.value = txt;
textarea.scrollTop = height - 40; // Margin between selection and top of viewport
}
Использование:
let textarea, start, end;
/* ... */
scrollTo(textarea, start);
textarea.focus();
textarea.setSelectionRange(start, end);