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.
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
- Verwandte Ereignisse:
compositionstart,compositionend.