Spec-Zone.ru › Web APIs

TextFormatUpdateEvent

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

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

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

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

Интерфейс TextFormatUpdateEvent — это событие DOM, которое представляет список форматов текста, которые окно IME (Input Method Editor) хочет применить к тексту, который вводится в редактируемой области, присоединённой к экземпляру EditContext.

Этот интерфейс наследует свойства от Event.

Событие TextFormatUpdateEvent

Конструктор

TextFormatUpdateEvent() Экспериментальная

Создаёт новый объект TextFormatUpdateEvent.

Методы экземпляра

TextFormatUpdateEvent.getTextFormats Экспериментальная

Возвращает массив Array объектов TextFormat, которые представляют форматы, которые окно IME хочет применить к тексту.

Примеры

Стиль текста, составленного IME

В следующем примере событие textformatupdate используется для обновления форматирования текста в редактируемой области.

<canvas id="editor-canvas"></canvas>
const TEXT_X = 10;
const TEXT_Y = 10;

const canvas = document.getElementById("editor-canvas");
const ctx = canvas.getContext("2d");

const editContext = new EditContext();
canvas.editContext = editContext;

editContext.addEventListener("textformatupdate", (e) => {
  // Clear the canvas.
  ctx.clearRect(0, 0, canvas.width, canvas.height);

  // Render the text.
  ctx.fillText(editContext.text, TEXT_X, TEXT_Y);
  console.log(`Rendering text: ${editContext.text}`);

  // Get the text formats that the IME window wants to apply.
  const formats = e.getTextFormats();

  // Iterate over the text formats
  for (const format of formats) {
    const { rangeStart, rangeEnd, underlineStyle, underlineThickness } = format;

    console.log(
      `Applying underline ${underlineThickness} ${underlineStyle} between ${rangeStart} and ${rangeEnd}.`,
    );

    const underlineXStart = ctx.measureText(
      editContext.text.substring(0, rangeStart),
    ).width;
    const underlineXEnd = ctx.measureText(
      editContext.text.substring(0, rangeEnd),
    ).width;
    const underlineY = TEXT_Y + 3;

    // For brevity, this example only draws a simple underline.
    // Use underlineStyle and underlineThickness to draw the correct underline.

    ctx.beginPath();
    ctx.moveTo(TEXT_X + underlineXStart, underlineY);
    ctx.lineTo(TEXT_X + underlineXEnd, underlineY);
    ctx.stroke();
  }
});

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

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

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
TextFormatUpdateEvent 121 121 Нет 107 Нет 121 Нет 81 Нет 25.0 121
TextFormatUpdateEvent 121 121 Нет 107 Нет 121 Нет 81 Нет 25.0 121
getTextFormats 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/TextFormatUpdateEvent

Spec-Zone.ru

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