EditContext: метод updateSelection()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментальная функция: Это экспериментальная технология
Перед использованием в продуктовой среде внимательно проверьте таблицу совместимости с браузерами.
Метод updateSelection() интерфейса EditContext обновляет внутреннее состояние выделения в контексте редактируемого текста. Этот метод используется для обновления состояния выделения, когда пользователь взаимодействует с отображением текста в элементе, связанном с EditContext, например, щелкнув или перетащив мышью, или используя клавиатуру.
Синтаксис
updateSelection(start, end)
Параметры
start-
Число, представляющее новое начало выделения.
end-
Число, представляющее новый конец выделения.
Если значения start и end одинаковы, выделение эквивалентно курсору.
Исключения
- Если предоставлен только один аргумент, будет выброшено исключение
TypeErrorDOMException. - Если любой из аргументов не является неотрицательным числом, будет выброшено исключение
DOMException.
Примеры
Обновление выделения при взаимодействии пользователя с текстом
Этот пример демонстрирует использование метода updateSelection для обновления выделения в EditContext элемента canvas при использовании стрелок клавиатуры для перемещения курсора или выделения текста в редактируемой области.
<canvas id="editor-canvas"></canvas>
const canvas = document.getElementById("editor-canvas");
const editContext = new EditContext();
canvas.editContext = editContext;
canvas.addEventListener("keydown", (e) => {
if (e.key == "ArrowLeft") {
const newPosition = Math.max(editContext.selectionStart - 1, 0);
if (e.shiftKey) {
editContext.updateSelection(newPosition, editContext.selectionEnd);
} else {
editContext.updateSelection(newPosition, newPosition);
}
} else if (e.key == "ArrowRight") {
const newPosition = Math.min(
editContext.selectionEnd + 1,
editContext.text.length,
);
if (e.shiftKey) {
editContext.updateSelection(editContext.selectionStart, newPosition);
} else {
editContext.updateSelection(newPosition, newPosition);
}
}
console.log(
`The new EditContext selection is ${editContext.selectionStart}, ${editContext.selectionEnd}`,
);
});
Спецификации
| Спецификация |
|---|
| API EditContext # dom-editcontext-updateselection |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
updateSelection |
121 | 121 | Нет | 107 | Нет | 121 | Нет | 81 | Нет | 25.0 | 121 |
См. также
- Интерфейс
EditContext, к которому он относится.
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/EditContext/updateSelection