Window: getSelection() Methode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

Die getSelection() Methode der Window Schnittstelle gibt das Selection Objekt zurück, das mit dem document des Fensters verknüpft ist und den vom Benutzer ausgewählten Textbereich oder die aktuelle Position des Carets darstellt.

Syntax

js
getSelection()

Parameter

Keine.

Rückgabewert

Ein Selection Objekt oder null, wenn das zugehörige Dokument keinen Browsing-Kontext hat (zum Beispiel, wenn das Fenster ein <iframe> ist, das nicht an ein Dokument angehängt ist).

Wenn es auf einem nicht angezeigten <iframe> aufgerufen wird (z.B. wenn display: none gesetzt ist), gibt Firefox null zurück, während andere Browser ein Selection Objekt mit Selection.type auf None gesetzt zurückgeben.

Beispiele

js
function foo() {
  const selObj = window.getSelection();
  alert(selObj);
  const selRange = selObj.getRangeAt(0);
  // do stuff with the range
}

Hinweise

Zeichenfolgenrepräsentation des Selection-Objekts

In JavaScript wird die Methode toString() eines Objekts aufgerufen und der zurückgegebene Wert an die Funktion übergeben, wenn ein Objekt an eine Funktion übergeben wird, die eine Zeichenfolge erwartet (wie window.alert() oder document.write()). Dies kann das Objekt wie eine Zeichenfolge erscheinen lassen, wenn es mit anderen Funktionen verwendet wird, obwohl es wirklich ein Objekt mit Eigenschaften und Methoden ist.

Im obigen Beispiel wird selObj.toString() automatisch aufgerufen, wenn es an window.alert() übergeben wird. Der Versuch, eine JavaScript String Eigenschaft oder Methode wie length oder substr direkt auf ein Selection Objekt anzuwenden, führt zu einem Fehler, wenn es diese Eigenschaft oder Methode nicht hat, und kann unerwartete Ergebnisse liefern, wenn es diese hat. Um ein Selection-Objekt als Zeichenfolge zu verwenden, rufen Sie direkt seine toString() Methode auf:

js
const selectedText = selObj.toString();
  • selObj ist ein Selection Objekt.
  • selectedText ist eine Zeichenfolge (Ausgewählter Text).

Verwandte Objekte

Sie können Document.getSelection() aufrufen, welches identisch zu Window.getSelection() funktioniert.

Es ist zu beachten, dass getSelection() derzeit nicht auf den Inhalt von <textarea> und <input> Elementen in Firefox und Edge (Legacy) funktioniert. HTMLInputElement.setSelectionRange() oder die Eigenschaften selectionStart und selectionEnd könnten verwendet werden, um dies zu umgehen.

Beachten Sie auch den Unterschied zwischen Selektion und Fokus. Document.activeElement gibt das fokussierte Element zurück.

Spezifikationen

Specification
Selection API
# dom-window-getselection

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch