selectionNN 6 IE 4(Win) DOM nicht zutreffend

Das selection-Objekt stellt null oder mehr Zeichen dar, die entweder explizit vom Benutzer oder automatisch durch ein Skript in einem Dokument ausgewählt wurden. Die Objekte sind in IE und Navigator sehr unterschiedliche Entitäten (beachten Sie die unten stehenden Kompatibilitätsbeurteilungen der Eigenschaften und Methoden) mit jeweils eigenen Skriptzugriffsmechanismen.

 

In IE für Windows erstellen Sie mithilfe der Eigenschaft document.selection ein selection-Objekt, das seinerseits ein selection-Objekt zurückgibt. Anschließend erzeugen Sie mithilfe der createRange( )-Methode des selection-Objekts ein TextRange-Objekt, das auf dem selection-Objekt basiert und anhand dessen Sie wesentliche Aktionen mit dem Inhalt des selection-Objekts ausführen können. Verwenden Sie die TextRange-Eigenschaften und -Methoden, um mit dem Inhalt zu interagieren. Wenn Sie ein TextRange-Objekt in einen sichtbar ausgewählten Textbereich in der Seite umwandeln möchten, verwenden Sie die select( )-Methode des TextRange-Objekts. Diese enge Verknüpfung mit dem TextRange-Objekt bedeutet, dass das selection-Objekt von IE derzeit noch auf Win32-Versionen beschränkt ist. Das IE-Auswahlobjekt kann Text enthalten, das in einem input-Element (vom Typ Text) oder einem textarea-Element ausgewählt wurde.

 

In IE für den Macintosh gibt es so etwas wie ein eigenständiges selection-Objekt nicht. Stattdessen implementiert IE/Mac die document.getSelection( )-Methode von Navigator 4, die eine Zeichenfolge mit dem Inhalt des ausgewählten Textbereichs zurückgibt.

 

Navigator 4 ermöglicht den Skriptzugriff auf den in einem Dokument ausgewählten Text mithilfe der Methode document.getSelection( ). Diese Methode wird in Netscape 6 nicht mehr unterstützt und erzeugt beim Versuch, sie aufzurufen, eine Warnmeldung (weniger schwer wiegend als ein Fehler) in der JavaScript-Konsole. An ihrer Stelle implementiert Netscape 6 ein robustes selection-Objekt mit einer langen Liste von Eigenschaften und Methoden für die Interaktion. Die meisten dieser Funktionen wurden in Netscape 6.2 eingeführt, darunter das Verfahren zum Erstellen eines selection-Objekts: die Methode window.getSelection( ). Beachten Sie, dass viele Eigenschaften und Methoden des selection-Objekts von Netscape 6 Analogien zur Range-Objektspezifikation aufweisen. Tatsächlich ist es das Range-Objekt, das es einem Skript ermöglicht, sogar unzusammenhängende Textbereiche in der Seite auszuwählen: Erstellen Sie ein Range-Objekt in der gewünschten Größe, und fügen Sie dieses Range-Objekt mithilfe der Methode addRange( ) des selection-Objekts dem bereits markierten Text hinzu. In Netscape 6 kann Text (wie beim Range-Objekt) nur im Body-Inhalt und nicht in bearbeitbaren Textfeldern ausgewählt werden.

 

Beachten Sie, dass die aktuelle Textauswahl in älteren Browsern (einschließlich IE 5 für den Mac) aufgehoben wird, wenn der Benutzer auf eine Schaltfläche klickt. Daher müssen in diesen Browsern alle Skriptaktionen, die eine Auswahl beinhalten, über onselect-oder onmouseup-Ereignisse oder solche Funktionen ausgelöst werden, die von einem Timer aufgerufen werden (siehe hierzu die Beschreibung der window.setTimeout( )-Methode in Kapitel 12). In neueren Browsern bleibt ausgewählter Text auch beim Klicken auf eine Schaltfläche ausgewählt.

 
Objektmodellreferenz
 
  • document.selection
  • window.getSelection( )
 
Objektspezifische Eigenschaften
 
anchorNodeanchorOffsetfocusNodefocusOffset
isCollapsedrangeCounttypetypeDetail
 
Objektspezifische Methoden
 
addRange( )clear( )collapse( )
collapseToEnd( )collapseToStart( )containsNode( )
createRange( )createRangeCollection( )deleteFromDocument( )
empty( )extend( )getRangeAt( )
removeAllRanges( )removeRange( )selectAllChildren( )
selectionLanguageChange( )toString( )
 
Objektspezifische Ereignisbehandlungsroutineneigenschaften

Keine.

anchorNode, focusNodeNN 6 IE nicht zutreffend DOM nicht zutreffend

Schreibgeschützt

Geben eine Referenz auf die Node zurück, in der der Benutzer die Auswahl gestartet (anchor) und beendet hat (focus). In aller Regel handelt es sich bei diesen Nodes um Textnodes. Wenn die Auswahl mithilfe der Methode addRange( ) festgelegt oder erweitert wird, weisen diese Eigenschaften auf die Node-Begrenzungspunkte des zuletzt hinzugefügten Bereichs.

 
Beispiel
 
var anchor = selectionRef.anchorNode;
if (anchor.nodeType == 3 && anchor.parentNode.tagName == "td") {
    // process selection start inside a table cell
}
 
Wert

Referenz auf eine Node im Dokumentbaum oder null, wenn keine Auswahl getroffen wurde.

 
Standardwert

null

anchorOffset, focusOffsetNN 6 IE nicht zutreffend DOM nicht zutreffend

Schreibgeschützt

Geben einen ganzzahligen Wert zurück, der die Anzahl der Zeichen oder Nodes ab dem Anfang der Anker- oder Fokusnode des ausgewählten Bereichs angibt (siehe Eigenschaften anchorNode und focusNode). Bei einer Textnode wird der Offset in Anzahl von Zeichen, bei einer Elementnode in Anzahl von Nodes angegeben. Diese Funktionsweise ähnelt der der Offset-Eigenschaften eines Range-Objekts. In der Regel geben diese Werte die Anzahl der Zeichen innerhalb einer Textnode an. Wenn die Auswahl mithilfe der Methode addRange( ) festgelegt oder erweitert wird, weisen diese Eigenschaften auf die Offsets der Node-Begrenzungspunkte des zuletzt hinzugefügten Bereichs.

 
Beispiel
 
var selStartOffset = selectionRef.anchorOffset;
 
Wert

Eine ganze Zahl.

 
Standardwert

0

isCollapsedNN 6 IE nicht zutreffend DOM nicht zutreffend

Schreibgeschützt

Gibt den Booleschen Wert true zurück, wenn die Anker- und Fokusbegrenzungen einer Auswahl identisch sind.

 
Beispiel
 
if (selectionRef.isCollapsed) {
    // selection is an insertion point
}
 
Wert

Boolescher Wert: true | false.

 
Standardwert

true

rangeCountNN 6 IE nicht zutreffend DOM nicht zutreffend

Schreibgeschützt

Geben einen ganzzahligen Wert zurück, der die Anzahl der Range-Objekte innerhalb der Auswahl zurückgibt. In Netscape 6 kann es sich hierbei auch um unzusammenhängende Bereiche handeln. Eine manuelle Auswahl des Benutzers enthält immer genau ein Range-Objekt, mithilfe der addRange( )-Methode können jedoch weitere unzusammenhängende Bereiche an die Auswahl angehängt werden. Verwenden Sie zum Untersuchen der Eigenschaften der einzelnen ausgewählten Abschnitte die Methode getRangeAt( ).

 
Beispiel
 
var howMany = selectionRef.rangeCount;
 
Wert

Eine ganze Zahl.

 
Standardwert

0

typeNN nicht zutreffend IE 4(Win) DOM nicht zutreffend

Schreibgeschützt

Legt fest, ob das aktuelle selection-Objekt ein oder mehrere ausgewählte Zeichen enthält, oder ob es sich lediglich um einen Einfügepunkt handelt.

 
Beispiel
 
if (document.selection.type == "Text") {
    ...
}
 
Wert

Eine der folgenden drei Konstanten (als Zeichenfolge): None | Text | Control. Der letzte Wert ist nur möglich, wenn die HTML-Bearbeitung aktiviert ist und die Steuerung von Auswahlbereichen unterstützt wird.

 
Standardwert

Keiner.

typeDetailNN nicht zutreffend IE 5.5(Win) DOM nicht zutreffend

Schreibgeschützt

Diese Eigenschaft wird als Platzhalter für andere Anwendungen bereitgestellt, die die IE-Browserkomponente möglicherweise nutzen. Eine solche Anwendung kann bei Bedarf weitere Informationen zum Typ der Auswahl bereitstellen.

addRange( )NN 6 IE nicht zutreffend DOM nicht zutreffend

addRange(RangeReference)

Wandelt ein Range-Objekt in eine sichtbar auf der Seite markierte Auswahl um. Sie können so viele unzusammenhängende Bereiche in die Auswahl aufnehmen, wie Ihre Anwendung erfordert. Mit jedem Bereich, den Sie hinzufügen, erhöht sich der Wert der Eigenschaft rangeCount des selection-Objekts. Die in einer Auswahl enthaltenen Bereiche können sich auch überschneiden.

 
Parameter
 
  • Referenz auf ein Range-Objekt mit Begrenzungen, die mithilfe der Range-Objektmethoden festgelegt wurden.
 
Zurückgegebener Wert

Keiner.

clear( )NN nicht zutreffend IE 4(Win) DOM nicht zutreffend

Löscht den Inhalt der aktuellen Auswahl in einem Dokument. Die Ereignisbehandlungsroutine im folgenden Tag löscht z. B. den markierten Text des p-Elements zwei Sekunden nachdem der Benutzer mit der Auswahl beginnt:

<p onselectstart="setTimeout('document.selection.clear( )',2000);>"
 
Parameter

Keine.

 
Zurückgegebener Wert

Keiner.

collapse( )NN 6 IE nicht zutreffend DOM nicht zutreffend

collapse(nodeReference, offset)

Verkleinert die aktuelle Auswahl auf eine durch die beiden Parameter angegebenen Position. Die bisher markierte Auswahl wird wieder in der normalen Weise dargestellt.

 
Parameter
 
  • Referenz auf eine Text- oder Elementnode im Dokumentbaum, in der der Begrenzungspunkt der verkleinerten Auswahl verschoben werden soll.
  • Die Anzahl der Zeichen oder Nodes innerhalb der nodeReference-Node in Form einer ganzen Zahl, die die Zielposition der verkleinerten Auswahl angibt. Der Wert bezieht sich auf den Anfang der Node. Bei Textnodes ist der Wert in Zeichen, bei Elementnodes in Nodes angegeben.
 
Zurückgegebener Wert

Keiner.

collapseToEnd( ), collapseToStart( )NN 6 IE nicht zutreffend DOM nicht zutreffend

Verkürzt die aktuelle Auswahl auf eine Position am Anfang (collapseToStart( )) oder am Ende (collapseToEnd( )) des selection-Objekts. Die bisher markierte Auswahl wird wieder in der normalen Weise dargestellt. Wenn die Auswahl aus mehreren Bereichen besteht, werden als Start- und Endpunkt für diese Methoden die äußersten Ränder der kombinierten Auswahl verwendet. Nach dem Verkürzen enthält die Auswahl nur noch einen Bereich.

 
Parameter

Keine.

 
Zurückgegebener Wert

Keine.

containsNode( )NN 6 IE nicht zutreffend DOM nicht zutreffend

containsNode(nodeReference, entirelyFlag)

Gibt den Booleschen Wert true zurück, wenn das aktuelle Auswahlobjekt eine als Parameter übergebene Node enthält. Mithilfe des zweiten Parameters sollten Sie angeben können, was der Begriff "enthalten" genau bedeuten soll, doch das Verhalten der Methode scheint nicht wirklich diesem Zweck zu entsprechen. Sie können die Genauigkeit der Auswahl gewährleisten, indem Sie als zweiten Parameter den Wert null übergeben. In diesem Fall wird nur eine Auswahl berücksichtigt, in der die Node vollständig enthalten ist.

 
Parameter
 
  • Referenz auf eine beliebige adressierbare Text- oder Elementnode im Dokumentbaum.
  • Boolescher Wert oder null. Offenbar bewirkt der Wert true, dass die Methode bereits den Wert true zurückgibt, wenn die Auswahl nur einen Teil der Node enthält.
 
Zurückgegebener Wert

Boolescher Wert: true | false.

createRange( )NN nicht zutreffend IE 4(Win) DOM nicht zutreffend

Erstellt ein TextRange-Objekt aus dem aktuellen selection-Objekt. Nach einer Anweisung wie der Folgenden:

var myRange = document.selection.createRange( );
 

kann der Inhalt des ausgewählten Textes durch ein Skript bearbeitet werden.

 
Parameter

Keine.

 
Zurückgegebener Wert

TextRange-Objekt.

createRangeCollection( )NN nicht zutreffend IE 5.5(Win) DOM nicht zutreffend

Erstellt ein TextRange-Sammlungsobjekt. Dieser Methode muss die Annahme zugrunde liegen, dass IE in Zukunft Auswahlen aus mehreren unzusammenhängenden Bereichen unterstützen wird.

 
Parameter

Keine.

 
Zurückgegebener Wert

TextRange-Sammlungsobjekt.

deleteFromDocument( )NN 6 IE nicht zutreffend DOM nicht zutreffend

Entfernt die aktuelle Auswahl aus dem Dokumentbaum. Die Nodehierarchie passt sich automatisch anhand derselben Regeln an, die auch für die Methode Range.deleteContents( ) gelten.

 
Parameter

Keine.

 
Zurückgegebener Wert

Keiner.

empty( )NN nicht zutreffend IE 4(Win) DOM nicht zutreffend

Hebt die aktuelle Auswahl auf und setzt die type-Eigenschaft des selection-Objekts auf None. Der zuvor ausgewählte Inhalt wird dabei nicht geändert.

 
Parameter

Keine.

 
Zurückgegebener Wert

Keiner.

extend( )NN 6 IE nicht zutreffend DOM nicht zutreffend

extend(nodeReference, offset)

Verschiebt den Endpunkt (Fokus) der Auswahl an die durch den Offsetwert bezeichnete Position in der angegebenen Node im Dokumentbaum. Der Startpunkt (Anker) wird bei dieser Methode nicht verschoben.

 
Parameter
 
  • Referenz auf eine Text- oder Elementnode im Dokumentbaum, in der der Fokus (Endpunkt) der Auswahl verschoben werden soll.
  • Die Anzahl der Zeichen oder Nodes innerhalb der nodeReference-Node in Form einer ganzen Zahl, die die Zielposition der verkleinerten Auswahl angibt. Der Wert bezieht sich auf den Anfang der Node. Bei Textnodes ist der Wert in Zeichen, bei Elementnodes in Nodes angegeben.
 
Zurückgegebener Wert

Keiner.

getRangeAt( )NN 6 IE nicht zutreffend DOM nicht zutreffend

getRangeAt(rangeIndex)

Gibt eine Referenz auf den Bereich innerhalb eines selection-Objekts zurück, dessen auf Null basierender numerischer Index mit dem übergebenen Parameter übereinstimmt. Bei zusammenhängenden Auswahlbereichen sollte der Parameter den Wert Null aufweisen. Bei unzusammenhängenden Auswahlbereichen hingegen können Sie mithilfe der Methode getRangeAt( ) die einzelnen Bereiche abrufen, die der Auswahl in den verschiedenen Bearbeitungsschritten als Range-Objekt hinzugefügt wurden. Verwenden Sie die selection.rangeCount-Eigenschaft, um die Anzahl der im selection-Objekt enthaltenen Range-Objekte zu ermitteln. Der Aufruf der Methode hat keinen Einfluss auf die Reihenfolge der Bereiche innerhalb der Auswahl.

 
Parameter
 
  • Ein auf Null basierender ganzzahliger Indexwert.
 
Zurückgegebener Wert

Range-Objektreferenz

removeAllRanges( )NN 6 IE nicht zutreffend DOM nicht zutreffend

Entfernt alle Range-Objekte aus der aktuellen Auswahl (jedoch nicht aus dem Dokumentbaum). Die Auswahl wird verkleinert und der Wert der Eigenschaft rangeCount auf Null gesetzt.

 
Parameter

Keine.

 
Zurückgegebener Wert

Keiner.

removeRange( )NN 6 IE nicht zutreffend DOM nicht zutreffend

removeRange(rangeReference)

Entfernt ein einzelnes Range-Objekt aus der aktuellen Auswahl (jedoch nicht aus dem Dokumentbaum). Wenn Ihre Auswahl mehrere Bereiche umfasst, können Sie mithilfe des folgenden Verfahrens die einzelnen Range-Objekte der Reihe nach auf ein bestimmtes Kriterium hin untersuchen und die gewünschten Objekte löschen:

var oneRange;
var sel = window.getSelection( );
for (var i = 0; i< sel.rangeCount; i++) {
    oneRange = sel.getRangeAt(i);
    if (oneRange. someProperty == someDiscerningValue) {
        sel.removeRange(oneRange);
    }
}
 
Parameter
 
  • Referenz auf eines der Range-Objekte, die zuvor der aktuellen Auswahl hinzugefügt wurden.
 
Zurückgegebener Wert

Keiner.

selectAllChildren( )NN 6 IE nicht zutreffend DOM nicht zutreffend

selectAllChildren(elementNodeReference)

Bewirkt, dass das selection-Objekt die als Parameter übergebene Elementnode sowie sämtliche ihrer Child-Nodes umfasst. Diese Methode ist auch eine kürzere Alternative zum Auswählen einer Elementnode mithilfe eines Skripts. Wenn Sie diese Methode auf eine Elementnode anwenden, wird diese durch die Anker- und die Focus-Node gebildet. Wenn Sie eine Referenz auf eine Textnode übergeben, wird die daraus resultierende Auswahl vor dem ersten Zeichen der Textnode verkleinert. Wenn Sie diese Methode auf eine vorhandene Auswahl anwenden, werden alle Bereiche durch den neuen Bereich ersetzt, der das Element umfasst.

 
Parameter
 
  • Referenz auf eine Elementnode im Dokumentbaum, die zur Auswahl erklärt wird.
 
Zurückgegebener Wert

Keiner.

selectionLanguageChange( )NN 6 IE nicht zutreffend DOM nicht zutreffend

selectionLanguageChange(RTLFlag)

Steuert den Cursor auf Bidi-Ebene (bidirektional).

 
Parameter
 
  • Boolescher Wert: true für rechts nach links, false für links nach rechts.
 
Zurückgegebener Wert

Keiner.

toString( )NN 6 IE nicht zutreffend DOM nicht zutreffend

Gibt eine Zeichenfolge zurück, die nur den Body-Inhalt der Auswahl enthält. Tags und Attribute werden ignoriert.

 
Parameter

Keine.

 
Zurückgegebener Wert

Zeichenfolgenwert.