TextFormat

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Die TextFormat-Schnittstelle repräsentiert spezifische Formatierungen, die auf einen Textbereich in einer editierbaren Textregion angewendet werden sollen, die an eine EditContext-Instanz angeschlossen ist. Die Textformatierung wird vom Input Method Editor (IME)-Fenster angefordert, mit dem der Benutzer Text verfasst.

Wenn Sie eine der standardmäßigen editierbaren Regionen des Webs verwenden, wie z.B. ein <textarea>-Element, wird die IME-Komposition von Browser und Betriebssystem für Sie gehandhabt. Zum Beispiel können bei Verwendung eines japanischen IME in einem Textbereich unter Windows die folgenden Textformate angewendet werden:

  • Wenn Text mit der Tastatur eingegeben wird, haben die getippten Zeichen eine dünne gewellte Unterstreichung:

    Ein Textbereich in Microsoft Edge auf Windows mit etwas japanischem Text, der im IME-Fenster verfasst wird

  • Wenn der Benutzer einen Vorschlag aus der Liste der Kandidaten im IME-Fenster auswählt, wird der Text ersetzt und mit einer dicken durchgezogenen Linie unterstrichen:

    Ein Textbereich in Microsoft Edge auf Windows mit etwas japanischem Text, der aus dem IME-Fenster ausgewählt wird

Wenn Sie Ihre eigene benutzerdefinierte editierbare Region mithilfe der EditContext API erstellen, müssen Sie die IME-Komposition selbst verwalten. Sie sollten auf das textformatupdate-Ereignis lauschen, das Ihnen die Liste der Textformate gibt, die das IME-Fenster auf den verfassten Text anwenden möchte. Sie sollten dann die Formatierung des Textes, der in Ihrer editierbaren Region dargestellt wird, entsprechend aktualisieren.

Konstruktor

TextFormat() Experimentell

Gibt eine neue TextFormat-Instanz zurück.

Instanz-Eigenschaften

TextFormat.rangeStart Nur lesbar Experimentell

Die Startposition des Textbereichs, der mit dem gegebenen Textformat formatiert werden muss.

TextFormat.rangeEnd Nur lesbar Experimentell

Die Endposition des Textbereichs, der mit dem gegebenen Textformat formatiert werden muss.

TextFormat.underlineStyle Nur lesbar Experimentell

Der Stil der Unterstreichung, die auf den zu formatierenden Textbereich angewendet werden muss.

TextFormat.underlineThickness Nur lesbar Experimentell

Die Dicke der Unterstreichung, die auf den zu formatierenden Textbereich angewendet werden muss.

Beispiele

Verwenden des textformatupdate-Ereignisses

Im folgenden Beispiel wird das textformatupdate-Ereignis verwendet, um die verschiedenen Formate zu protokollieren, die das IME-Zusammenstellungsfenster auf Textbereiche im editierbaren Element anwenden möchte. Beachten Sie, dass die Ereignis-Listener-Rückruffunktion in diesem Beispiel nur aufgerufen wird, wenn ein IME-Fenster verwendet wird, um Text zu verfassen.

html
<div id="editor" style="height:200px;background:#eee;"></div>
js
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}.`,
    );
  }
});

Spezifikationen

Specification
EditContext API
# dom-textformat

Browser-Kompatibilität

BCD tables only load in the browser