Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Element: compositionupdate-Ereignis

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Das compositionupdate-Ereignis wird ausgelöst, wenn im Rahmen einer Texteingabesitzung ein neues Zeichen empfangen wird. Die Sitzung wird von einem Texteingabesystem wie einem Input Method Editor gesteuert.

Dieses Ereignis kann beispielsweise ausgelöst werden, während eine Person mithilfe eines Pinyin-Input Method Editors ein chinesisches Zeichen eingibt.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

js
addEventListener("compositionupdate", (event) => { })

Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:

js
oncompositionupdate = (event) => { }

Ereignistyp

Ein CompositionEvent. Erbt von UIEvent und Event.

Event UIEvent CompositionEvent

Beispiele

js
const inputElement = document.querySelector('input[type="text"]');

inputElement.addEventListener("compositionupdate", (event) => {
  console.log(`generated characters were: ${event.data}`);
});

Interaktives Beispiel

HTML

html
<div class="control">
  <p>First select textbox, then to open IME:</p>
  <ul>
    <li>on macOS type <kbd>option</kbd> + <kbd>`</kbd></li>
    <li>on Windows type <kbd>windows</kbd> + <kbd>.</kbd></li>
  </ul>
  <label for="example">Example input</label>
  <input type="text" id="example" name="example" />
</div>

<div class="event-log">
  <label for="eventLog">Event log:</label>
  <textarea
    readonly
    class="event-log-contents"
    rows="8"
    cols="25"
    id="eventLog"></textarea>
  <button class="clear-log">Clear</button>
</div>

JavaScript

js
const inputElement = document.querySelector('input[type="text"]');
const log = document.querySelector(".event-log-contents");
const clearLog = document.querySelector(".clear-log");

clearLog.addEventListener("click", () => {
  log.textContent = "";
});

function handleEvent(event) {
  log.textContent += `${event.type}: ${event.data}\n`;
}

inputElement.addEventListener("compositionstart", handleEvent);
inputElement.addEventListener("compositionupdate", handleEvent);
inputElement.addEventListener("compositionend", handleEvent);

Ergebnis

Spezifikationen

Spezifikation
UI Events
# event-type-compositionupdate

Browser-Kompatibilität

Siehe auch