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.
addEventListener("compositionstart", (event) => {});
oncompositionstart = (event) => {};
Ereignistyp
Ein CompositionEvent
. Erbt von UIEvent
und Event
.
Ereigniseigenschaften
Diese Schnittstelle erbt auch Eigenschaften von ihrem Elternteil, UIEvent
, und ihrem Vorfahren — Event
.
CompositionEvent.data
Nur lesbar-
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
Nur lesbar Veraltet-
Gibt das Gebietsschema der aktuellen Eingabemethode zurück (zum Beispiel das Tastaturlayout-Gebietsschema, wenn die Komposition mit IME verbunden ist).
Beispiele
const inputElement = document.querySelector('input[type="text"]');
inputElement.addEventListener("compositionstart", (event) => {
console.log(`generated characters were: ${event.data}`);
});
Live-Beispiel
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
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
- Verwandte Ereignisse:
compositionend
,compositionupdate
.