Element: compositionstart Ereignis

Das compositionstart Ereignis wird ausgelöst, wenn ein Textkompositionssystem wie ein Eingabemethoden-Editor eine neue Kompositionssitzung startet.

Zum Beispiel könnte dieses Ereignis ausgelöst werden, nachdem ein Benutzer beginnt, ein chinesisches Zeichen mit einem Pinyin IME einzugeben.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.

js
addEventListener("compositionstart", (event) => {});

oncompositionstart = (event) => {};

Ereignistyp

Ereigniseigenschaften

Diese Schnittstelle erbt auch Eigenschaften von ihrem Elternteil, UIEvent, und ihrem Vorfahren — Event.

CompositionEvent.data Schreibgeschützt

Gibt die vom Eingabemethode erzeugten Zeichen zurück, die das Ereignis ausgelöst haben; es variiert je nach Art des Ereignisses, das das CompositionEvent Objekt erzeugt hat.

CompositionEvent.locale Schreibgeschützt Veraltet

Gibt das Gebietsschema der aktuellen Eingabemethode zurück (zum Beispiel das Tastaturlayout-Gebietsschema, wenn die Komposition mit IME verbunden ist).

Beispiele

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

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

Live-Beispiel

HTML

html
<div class="control">
  <label for="example">
    Focus the text-input control, then open your IME and begin typing.
  </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

Specification
UI Events
# event-type-compositionstart

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch