selection | NN 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 | ||||||||||||||||||
|
||||||||||||||||||
Objektspezifische Eigenschaften | ||||||||||||||||||
|
||||||||||||||||||
Objektspezifische Methoden | ||||||||||||||||||
|
||||||||||||||||||
Objektspezifische Ereignisbehandlungsroutineneigenschaften | ||||||||||||||||||
Keine. |
anchorNode, focusNode | NN 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, focusOffset | NN 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 |
isCollapsed | NN 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 |
rangeCount | NN 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 |
type | NN 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. |
typeDetail | NN 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 | |
|
|
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 | |
|
|
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 | |
|
|
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 | |
|
|
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 | |
|
|
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 | |
|
|
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 | |
|
|
Zurückgegebener Wert | |
Keiner. |
selectionLanguageChange( ) | NN 6 IE nicht zutreffend DOM nicht zutreffend |
selectionLanguageChange(RTLFlag) | |
Steuert den Cursor auf Bidi-Ebene (bidirektional). |
|
Parameter | |
|
|
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. |