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

View in English Always switch to English

Dokument: selectionchange-Ereignis

Baseline Weitgehend verfügbar

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

Der Browser löst das selectionchange-Ereignis der Selection API aus, wenn die aktuelle Selection eines Document geändert wird. Eine Dokumentauswahl stellt entweder einen Bereich ausgewählten Inhalts über DOM-Knoten hinweg oder eine eingeklappte Cursorposition dar.

Dieses Ereignis ist nicht abbrechbar und wird nicht nach oben weitergegeben.

Syntax

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

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

onselectionchange = (event) => {}

Ereignistyp

Ein generisches Event.

Beschreibung

Das selectionchange-Ereignis des Document-Objekts wird ausgelöst, wenn:

  • Ein Benutzer oder Skript eine Auswahl erstellt oder löscht.
  • Der Start- oder Endpunkt eines ausgewählten Bereichs verschoben wird.
  • Ein ausgewählter Bereich vollständig geändert wird.
  • Eine Auswahl auf eine einzelne Cursorposition reduziert wird.

Das Ereignisobjekt selbst enthält keine aktualisierten Auswahldetails. Sie können die aktuelle Auswahl abrufen, indem Sie document.getSelection() innerhalb Ihres Ereignis-Listeners aufrufen.

Dieses Ereignis unterscheidet sich maßgeblich vom selectionchange-Ereignis, das bei <input> und <textarea>-Textelementen ausgelöst wird:

  • Dokumentauswahlen verwenden DOM-Knotenpositionen und erfordern Document.getSelection() zur Inspektion. Texteingaben haben unabhängige Auswahlen innerhalb ihrer internen Textwerte, die über Zeichenoffsets inspiziert werden, die über selectionStart, selectionEnd und selectionDirection zugänglich sind.
  • Das dokumentenbezogene selectionchange-Ereignis wird direkt auf dem Document ausgelöst und wird nicht nach oben weitergegeben. Das Texteingabefeld selectionchange-Ereignis wird auf dem Input/Textarea-Element ausgelöst und wird im DOM-Baum nach oben weitergereicht.

Sehen Sie sich das selectionchange-Ereignis von HTMLInputElement und das selectionchange-Ereignis von HTMLTextAreaElement an, um weitere Details zu den Texteingabe-Ereignissen zu erhalten.

Beispiele

Grundlegende Verwendung

js
// addEventListener version
document.addEventListener("selectionchange", () => {
  console.log(document.getSelection());
});

// onselectionchange version
document.onselectionchange = () => {
  console.log(document.getSelection());
};

Spezifikationen

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

Browser-Kompatibilität

Siehe auch