Spec-Zone.ru › Web APIs

TextFormat

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

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

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

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

Интерфейс TextFormat представляет собой определенный формат, который должен быть применен к участку текста в области редактируемого текста, прикреплённой к экземпляру EditContext. Форматирование текста запрашивается окном редактора ввода (IME), с которым пользователь вводит текст.

При использовании одной из стандартных областей редактирования веб-страницы, такой как элемент <textarea>, обработка ввода IME осуществляется браузером и операционной системой. Например, при использовании японского IME в textarea в Windows можно применить следующие форматы текста:

  • При вводе текста с клавиатуры набираемые символы имеют тонкую волнистую подчёркивание:

    A textarea in Microsoft Edge on Windows with some Japanese text being composed from the IME window

  • При выборе предложения из списка кандидатов в окне IME текст заменяется и подчёркивается толстой сплошной линией:

    A textarea in Microsoft Edge on Windows with some Japanese text being selected from the IME window

При создании собственной пользовательской области редактирования с помощью API EditContext необходимо самостоятельно обрабатывать ввод IME. Следует прослушивать событие textformatupdate, которое предоставляет список форматов текста, которые окно IME хочет применить к вводимому тексту. Затем необходимо соответствующим образом обновить форматирование текста, отображаемого в вашей области редактирования.

Конструктор

TextFormat() Экспериментально

Возвращает новый экземпляр TextFormat.

Свойства экземпляра

TextFormat.rangeStart Только для чтения Экспериментально

Начальная позиция диапазона текста, который необходимо отформатировать указанным форматом текста.

TextFormat.rangeEnd Только для чтения Экспериментально

Конечная позиция диапазона текста, который необходимо отформатировать указанным форматом текста.

TextFormat.underlineStyle Только для чтения Экспериментально

Стиль подчёркивания, который необходимо применить к диапазону текста, который форматируется.

TextFormat.underlineThickness Только для чтения Экспериментально

Толщина подчёркивания, которую необходимо применить к диапазону текста, который форматируется.

Примеры

Использование события textformatupdate

В следующем примере используется событие textformatupdate для регистрации различных форматов, которые окно ввода IME хочет применить к диапазонам текста в элементе редактирования. Обратите внимание, что обратный вызов обработчика событий в этом примере вызывается только при использовании окна IME для ввода текста.

<div id="editor" style="height:200px;background:#eee;"></div>
const editorEl = document.getElementById("editor");
const editContext = new EditContext(editorEl);
editorEl.editContext = editContext;

editContext.addEventListener("textformatupdate", (e) => {
  // Get the TextFormat instances.
  const formats = e.getTextFormats();

  // Iterate over the TextFormat instances.
  for (const format of formats) {
    console.log(
      `Applying a ${format.underlineThickness} ${format.underlineStyle} underline between ${format.rangeStart} and ${format.rangeEnd}.`,
    );
  }
});

Спецификации

Спецификация
API EditContext
# dom-textformat

Совместимость браузеров

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
TextFormat 121 121 Нет 107 Нет 121 Нет 81 Нет 25.0 121
TextFormat 121 121 Нет 107 Нет 121 Нет 81 Нет 25.0 121
rangeEnd 121 121 Нет 107 Нет 121 Нет 81 Нет 25.0 121
rangeStart 121 121 Нет 107 Нет 121 Нет 81 Нет 25.0 121
underlineStyle 121 121 Нет 107 Нет 121 Нет 81 Нет 25.0 121
underlineThickness 121 121 Нет 107 Нет 121 Нет 81 Нет 25.0 121

© 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/TextFormat

Spec-Zone.ru

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