EditContext: метод updateText()
Ограниченная доступность
Данная функция не относится к Baseline, так как не работает в некоторых из наиболее широко используемых браузеров.
Экспериментально: Это экспериментальная технология.
Перед использованием в производстве внимательно ознакомьтесь с таблицей совместимости браузеров.
Метод updateText() интерфейса EditContext обновляет внутреннее текстовое содержимое объекта EditContext.
Использовать этот метод не требуется, если пользователь вводит текст в связанный элемент. Объект EditContext автоматически обновит своё внутреннее текстовое содержимое и при необходимости сгенерирует события textupdate.
Однако этот метод может быть использован, если пользователь взаимодействует с текстовым содержимым иными способами, например, при вставке текста из буфера обмена.
Синтаксис
updateText(rangeStart, rangeEnd, text)
Параметры
rangeStart-
Число, представляющее начало диапазона заменяемого текста.
rangeEnd-
Число, представляющее конец диапазона заменяемого текста.
text-
Строка, представляющая новое текстовое содержимое.
Исключения
- Если предоставлено меньше трех аргументов, выбрасывается исключение
TypeErrorDOMException.
Примеры
Обновление редактора при вставке текста пользователем
В этом примере показано, как использовать метод updateText для обновления текстового содержимого EditContext элемента <canvas> при нажатии пользователем комбинации клавиш Ctrl/Cmd + V для вставки текста.
В примере также используется метод Clipboard.readText() для чтения текста из буфера обмена.
<canvas id="editor-canvas"></canvas>
const canvas = document.getElementById("editor-canvas");
const ctx = canvas.getContext("2d");
const editContext = new EditContext();
canvas.editContext = editContext;
function render() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillText(editContext.text, 0, 40);
}
editContext.addEventListener("textupdate", (e) => {
render();
});
canvas.addEventListener("keydown", async (e) => {
if (e.key == "v" && (e.ctrlKey || e.metaKey)) {
const pastedText = await navigator.clipboard.readText();
console.log(
`The user pasted the text: ${pastedText}. Updating the EditContext text.`,
);
editContext.updateText(
editContext.selectionStart,
editContext.selectionEnd,
pastedText,
);
editContext.updateSelection(
editContext.selectionStart + pastedText.length,
editContext.selectionStart + pastedText.length,
);
render();
}
});
Спецификации
| Спецификация |
|---|
| API EditContext # dom-editcontext-updatetext |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
updateText |
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/updateText