Spec-Zone.ru › Web APIs

EditContext: метод updateText()

Ограниченная доступность

Данная функция не относится к Baseline, так как не работает в некоторых из наиболее широко используемых браузеров.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Экспериментально: Это экспериментальная технология.
Перед использованием в производстве внимательно ознакомьтесь с таблицей совместимости браузеров.

Метод updateText() интерфейса EditContext обновляет внутреннее текстовое содержимое объекта EditContext.

Использовать этот метод не требуется, если пользователь вводит текст в связанный элемент. Объект EditContext автоматически обновит своё внутреннее текстовое содержимое и при необходимости сгенерирует события textupdate.

Однако этот метод может быть использован, если пользователь взаимодействует с текстовым содержимым иными способами, например, при вставке текста из буфера обмена.

Синтаксис

updateText(rangeStart, rangeEnd, text)

Параметры

rangeStart

Число, представляющее начало диапазона заменяемого текста.

rangeEnd

Число, представляющее конец диапазона заменяемого текста.

text

Строка, представляющая новое текстовое содержимое.

Исключения

  • Если предоставлено меньше трех аргументов, выбрасывается исключение TypeError DOMException.

Примеры

Обновление редактора при вставке текста пользователем

В этом примере показано, как использовать метод 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API