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

View in English Always switch to English

HTMLTextAreaElement: selectionchange Ereignis

Baseline 2024
Neu verfügbar

Seit September 2024 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.

Das selectionchange Ereignis der Selection API wird ausgelöst, wenn die Textauswahl innerhalb eines <textarea> Elements verändert wird. Dies umfasst sowohl Änderungen im ausgewählten Zeichenbereich als auch Bewegungen des Cursors.

Dieses Ereignis kann nicht abgebrochen werden.

Hinweis: Wenn Sie die Auswahl programmatisch ändern, beispielsweise durch Aufruf von setSelectionRange(), wird die Auswahl sofort aktualisiert, aber das selectionchange Ereignis wird als Aufgabe in die Warteschlange gestellt. Dessen Listener werden später ausgeführt, nachdem das aktuelle Skript die Ausführung beendet hat. Dies steht im Gegensatz zu Ereignissen wie focus und click, deren Listener synchron ausgeführt werden, wenn sie durch focus() und click() ausgelöst werden.

Das Ereignis wird in der Regel verarbeitet, indem ein Ereignis-Listener auf das <textarea> hinzugefügt wird und in der Handler-Funktion durch die selectionStart, selectionEnd und selectionDirection Eigenschaften des HTMLTextAreaElement gelesen wird.

Es ist auch möglich, einen Listener für den globalen onselectionchange Ereignishandler hinzuzufügen und innerhalb der Handler-Funktion Document.getSelection() zu verwenden, um die Selection zu erhalten. Dies ist jedoch nicht sehr nützlich, um Änderungen an Text-Auswahlen zu erhalten.

Syntax

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

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

onselectionchange = (event) => { }

Ereignistyp

Ein generisches Event.

Beispiele

Das folgende Beispiel zeigt, wie man den im <textarea> Element ausgewählten Text erhält.

HTML

html
<div>
  Enter and select text here:<br /><textarea
    id="my-text"
    rows="2"
    cols="20"></textarea>
</div>
<div>selectionStart: <span id="start"></span></div>
<div>selectionEnd: <span id="end"></span></div>
<div>selectionDirection: <span id="direction"></span></div>

JavaScript

js
const myInput = document.getElementById("my-text");

myInput.addEventListener("selectionchange", () => {
  document.getElementById("start").textContent = myInput.selectionStart;
  document.getElementById("end").textContent = myInput.selectionEnd;
  document.getElementById("direction").textContent = myInput.selectionDirection;
});

Ergebnis

Spezifikationen

Spezifikation
Selection API
# selectionchange-event
Selection API
# dom-globaleventhandlers-onselectionchange

Browser-Kompatibilität