Spec-Zone.ru › Web APIs

EditContext: метод updateSelection()

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

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

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

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

Метод updateSelection() интерфейса EditContext обновляет внутреннее состояние выделения в контексте редактируемого текста. Этот метод используется для обновления состояния выделения, когда пользователь взаимодействует с отображением текста в элементе, связанном с EditContext, например, щелкнув или перетащив мышью, или используя клавиатуру.

Синтаксис

updateSelection(start, end)

Параметры

start

Число, представляющее новое начало выделения.

end

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

Если значения start и end одинаковы, выделение эквивалентно курсору.

Исключения

  • Если предоставлен только один аргумент, будет выброшено исключение TypeError DOMException.
  • Если любой из аргументов не является неотрицательным числом, будет выброшено исключение 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

Spec-Zone.ru

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