selection | NN 6 IE 4(Win) DOM s.o.
L'objet selection représente zéro ou plusieurs caractères sélectionnés explicitement par l'utilisateur ou par script. Les objets sont des entités très différentes dans les navigateurs IE et Navigator (consultez les niveaux de compatibilité pour les propriétés et les méthodes ci-dessous) et chacun d´entre eux a sa façon propre de fournir l´accès aux scripts.
Dans IE pour Windows, vous créez un objet selection par le biais de la propriété document.selection, qui renvoie un objet selection. Pour effectuer des actions sur le contenu de l´objet selection, vous devez alors générer un objet TextRange à partir de l´objet selection (par le biais de la méthode createRange() de l´objet selection). Utilisez les propriétés et les méthodes TextRange pour interagir avec le contenu. Pour convertir un objet TextRange en une plage de texte visiblement sélectionnée sur la page, utilisez la méthode select() de l´objet TextRange. Ce lien important avec l´objet TextRange signifie que l´objet selection IE est pour l´instant limité aux versions Win32. L´objet selection IE peut comprendre du texte sélectionné dans un élément input (de texte de type) et textarea.
Dans IE pour Macintosh, il n´y a pas d´objet selection à proprement parler. A la place, la méthode document.getSelection() Navigator 4 est implémentée, qui renvoie uniquement le contenu de la chaîne du texte sélectionné.
Navigator 4 offre l'accès par script au texte sélectionné dans un document via la méthode document.getSelection(). Cette méthode est délaissée dans Netscape 6 et son utilisation affiche même un avertissement (moins grave qu´une erreur) dans la console Javascript. A sa place, Netscape 6 implémente un objet selection solide qui offre une longue liste de propriétés et méthodes pour interagir avec l´objet. La plupart de cette fonctionnalité est devenue disponible dans Netscape 6.2, notamment la façon de créer un objet selection: la méthode window.getSelection(). Remarque: De nombreuses propriétés et méthodes de l´objet selection Netscape 6 ont des correspondances dans la spécification de l´objet Range. En fait, c´est par le biais de l´objet Range que les scripts peuvent sélectionner même des plages de texte non contiguës sur la page: créez et dimensionnez un objet Range, puis ajoutez-le au texte sélectionné par le biais de la méthode addRange() de l´objet selection. Les sélections de Netscape 6 (comme avec l´objet Range) n´opèrent que sur le contenu du corps et non sur le texte dans les zones de texte modifiables.
Attention, dans les anciens navigateurs (y compris IE pour Mac), si vous cliquez sur les boutons, la sélection de texte courante est désélectionnée. Par conséquent, dans ces navigateurs, toute action de script impliquant une sélection doit être déclenchée par des événements onselect ou onmouseup ou des fonctions invoquées par une horloge (voir la description de la méthode window.setTimeout() dans le chapitre 12). Les navigateurs plus récents maintiennent la sélection du contenu même lorque vous cliquez sur des boutons.
Référence de modèle d'objet
document.selection window.getSelection()
Propriétés spécifiques à l´objet
anchorNode | anchorOffset | focusNode | focusOffset
isCollapsed | rangeCount | type | typeDetail
Méthodes spécifiques à l´objet
addRange() | clear() | collapse()
collapseToEnd() | collapseToStart() | containsNode()
createRange() | createRangeCollection() | deleteFromDocument()
empty() | extend() | getRangeAt()
removeAllRanges() | removeRange() | selectAllChildren()
selectionLanguageChange() | toString() |
Propriétés de gestionnaire d´événements spécifiques à l´objet
Aucune.

anchorNode, focusNode | NN 6 IE s.o. DOM s.o.
| Lecture seule
Renvoie une référence au noeud où l´utilisateur a commencé (ancre) et terminé (activation) la sélection. Généralement, il s´agit de types de noeuds de texte. Si la sélection est définie ou élargie par le biais de la méthode addRange(), ces propriétés pointent sur les extrémités de noeud de la plage la plus récemment ajoutée.
Exemple
    var anchor = selectionRef.anchorNode;
    if (anchor.nodeType == 3 && anchor.parentNode.tagName == "td") {
        // process selection start inside a table cell
    }
Valeur
Référence à un noeud d´arborescence de documents ou null s´il n´y a pas de sélection.
Par défaut
null

anchorOffset, focusOffset | NN 6 IE s.o. DOM s.o.
| Lecture seule
Renvoie un nombre entier de caractères ou de noeuds du début des noeuds d´ancre ou d´activation de la sélection (reportez-vous aux propriétés anchorNode et focusNode). S´il s´agit d´un noeud de texte, l´unité de décalage est le caractère; s´il s´agit d´un noeud élément, l´unité de décalage est le noeud. Ce comportement est similaire aux propriétés de décalage de l´objet Range. Généralement, ces valeurs comptent les caractères dans les types de noeuds de texte. Si la sélection est définie ou élargie par le biais de la méthode addRange(), ces propriétés pointent vers les décalages des extrémités de noeud de la plage la plus récemment ajoutée.
Exemple
    var selStartOffset = selectionRef.anchorOffset;
Valeur
Nombre entier.
Par défaut
0

isCollapsed | NN 6 IE s.o. DOM s.o.
| Lecture seule
Renvoie la valeur booléenne true si les extrémités d´ancre et d´activation d´une sélection sont identiques.
Exemple
    if (selectionRef.isCollapsed) {
        // selection is an insertion point
    }
Valeur
Valeur booléenne: true | false.
Par défaut
true

rangeCount | NN 6 IE s.o. DOM s.o.
| Lecture seule
Renvoie un nombre entier d´objets Range (qui peuvent être non contigus dans Netscape 6) dans l´étendue de la sélection. Une sélection manuelle de l´utilisateur contient toujours un objet Range, mais la méthode addRange() peut ajouter plusieurs plages non contiguës à la sélection. Pour passer en revue les propriétés de chaque section sélectionnée, utilisez la méthode getRangeAt().
Exemple
    var howMany = selectionRef.rangeCount;
Valeur
Nombre entier.
Par défaut
0

type | NN s.o. IE 4 (Win) DOM s.o.
| Lecture seule
Indique si un ou plusieurs caractères sont sélectionnés pour l'objet selection courant ou s'il s'agit simplement d'un point d'insertion.
Exemple
    if (document.selection.type == "Text") {
        ...
    }
Valeur
L'une de trois constantes sous forme de chaîne: None | Text | Control. La dernière n´est possible que si la modification HTML est activée et si les sélections de contrôle sont possibles.
Par défaut
Aucune

typeDetail | NN s.o. IE 5,5 (Win) DOM s.o.
| Lecture seule
Cette propriété est fournie comme paramètre fictif pour les autres applications pouvant utiliser le composant du navigateur IE. Une telle application peut fournir des informations supplémentaires sur le type de sélection si nécessaire.

addRange() | NN 6 IE s.o. DOM s.o.
addRange(RangeReference) |
Transforme un objet Range en sélection en surbrillance sur la page. Vous pouvez ajouter autant de plages non contiguës à la sélection que votre application l´exige. Chaque ajout incrémente la propriété rangeCount de l´objet selection. Les plages peuvent aussi se chevaucher dans une sélection.
Paramètres
Référence à un objet Range avec des extrémités qui ont été définies par le biais des méthodes de l´objet Range.
Valeur renvoyée
Aucune.

clear() | NN s.o. IE 4 (Win) DOM s.o.
Supprime le contenu de la sélection de texte courante dans le document. Par exemple, le gestionnaire d'événements de la balise suivante supprime tout texte sélectionné de l'élément p deux secondes après que l'utilisateur commence à opérer sa sélection:
    <p onselectstart="setTimeout('document.selection.clear( )',2000);>"
Paramètres
Aucune.
Valeur renvoyée
Aucune.

collapse() | NN 6 IE s.o. DOM s.o.
collapse(nodeReference, offset) |
Réduit la sélection courante à un emplacement spécifié par deux paramètres. Toute sélection précédemment en surbrillance retourne à l´affichage normal.
Paramètres
Référence à un noeud de texte ou élément dans l´arborescence de documents dans lequel la sélection réduite doit être placée. Nombre entier de caractères ou de noeuds nodeReference où la sélection réduite doit être placée. Le point de début est relatif au début du noeud. Les unités sont les caractères pour les noeuds de texte et les noeuds pour les éléments.
Valeur renvoyée
Aucune.

collapseToEnd(), collapseToStart() | NN 6 IE s.o. DOM s.o.
Réduit la sélection courante à un emplacement au début (collapseToStart()) ou à la fin (collapseToEnd()) de l´objet selection. Toute sélection précédemment en surbrillance retourne à l´affichage normal. Si la sélection est composée de plusieurs plages, les extrémités de début et de fin pour ces méthodes de réduction sont les bords les plus extérieurs de la sélection combinée. Après la réduction, la sélection ne comprend plus qu´une plage.
Paramètres
Aucune.
Valeur renvoyée
Aucune.

containsNode() | NN 6 IE s.o. DOM s.o.
containsNode(nodeReference, entirelyFlag) |
Renvoie la valeur booléenne true si l´objet de sélection courant contient un noeud transmis comme paramètre. Le deuxième paramètre est censé vous permettre d´élargir ou de réduire la définition des conteneurs, mais le comportement de la méthode semble faire l´inverse de l´objectif prévu du drapeau. Pour garantir la précision, transmettez null comme deuxième paramètre, ce qui force la méthode à définir les conteneurs comme contenant la totalité du noeud.
Paramètres
Référence à n´importe quel noeud de texte ou élément adressable dans l´arborescence de documents. Valeur booléenne ou null. Le comportement observé est qu´une valeur égale à true signifie que la sélection ne peut contenir qu´une partie du noeud pour que la méthode renvoie true.
Valeur renvoyée
Valeur booléenne: true | false.

createRange() | NN s.o. IE 4 (Win) DOM s.o.
Crée un objet TextRange à partir de l'objet selection courant. Après une instruction telle que:
    var myRange = document.selection.createRange( );
les scripts peuvent agir sur le contenu du texte sélectionné.
Paramètres
Aucune.
Valeur renvoyée
Objet TextRange.

createRangeCollection() | NN s.o. IE 5,5 (Win) DOM s.o.
Crée un objet de collection TextRange. Cela doit servir à anticiper la prise en charge future par IE de plusieurs sélections non contiguës.
Paramètres
Aucune.
Valeur renvoyée
Objet de collection TextRange.

deleteFromDocument() | NN 6 IE s.o. DOM s.o.
Supprime la sélection courante de l´arborescence de documents. La hiérarchie des noeuds s´ajuste en obéissant aux mêmes règles que Range.deleteContents().
Paramètres
Aucune.
Valeur renvoyée
Aucune.

empty() | NN s.o. IE 4 (Win) DOM s.o.
Annule la sélection en cours et paramètre la propriété type de l'objet selection sur None. Aucun changement n'est apporté au contenu sélectionné.
Paramètres
Aucune.
Valeur renvoyée
Aucune.

extend() | NN 6 IE s.o. DOM s.o.
extend(nodeReference, offset) |
Déplace l´extrémité de fin (activation) de la sélection jusqu´au noeud de l´arborescence de documents désigné et au décalage au sein de ce noeud. Le point de début (ancre) ne se déplace pas dans le cadre de cette méthode.
Paramètres
Référence à un noeud de texte ou élément dans l´arborescence de documents dans lequel l´activation (point de fin) de la sélection doit être déplacée. Nombre entier de caractères ou de noeuds nodeReference où la sélection réduite doit être placée. Le point de début est relatif au début du noeud. Les unités sont les caractères pour les noeuds de texte et les noeuds pour les éléments.
Valeur renvoyée
Aucune.

getRangeAt() | NN 6 IE s.o. DOM s.o.
getRangeAt(rangeIndex) |
Renvoie une référence à la plage dans l´objet selection dont l´index numérique en base zéro correspond au paramètre transmis. Pour les sélections contiguës, le paramètre doit être zéro. Mais pour les sélections non contiguës, la méthode getRangeAt() vous permet d´extraire chaque plage qui a été ajoutée à la sélection pour que vous puissiez la manipuler individuellement comme un objet Range. Utilisez la propriété selection.rangeCount pour dériver le nombre d´objets Range contenus dans l´objet selection. L´invocation de la méthode ne modifie pas la séquence des plages au sein de la sélection.
Paramètres
Valeur d´index, sous forme de nombre entier à base zéro.
Valeur renvoyée
Référence de l'objet Range.

removeAllRanges() | NN 6 IE s.o. DOM s.o.
Supprime tous les objets Range de la sélection courante (pas de l´arborescence de documents). La sélection est réduite et la valeur de la propriété rangeCount passe à zéro.
Paramètres
Aucune.
Valeur renvoyée
Aucune.

removeRange() | NN 6 IE s.o. DOM s.o.
removeRange(rangeReference) |
Supprime un objet Range de la sélection courante (pas de l´arborescence de documents). Dans le cas d´une sélection avec plusieurs plages, vous pouvez effectuer une recherche itérative dans tous les objets Range, tous les passer en revue pour trouver certains critères et supprimer celui ou ceux que vous voulez avec la séquence suivante:
    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);
        }
    }
Paramètres
Référence à l´un des objets Range précédemment ajoutés à la sélection courante.
Valeur renvoyée
Aucune.

selectAllChildren() | NN 6 IE s.o. DOM s.o.
selectAllChildren(elementNodeReference) |
Force l´objet selection à englober le noeud élément transmis comme paramètre, ainsi que tous ses noeuds enfants. Cette méthode est aussi un raccourci permettant d´utiliser un script pour sélectionner un noeud élément. L´utilisation de cette méthode pour un noeud élément fait des noeuds d´ancre et d´activation ce noeud élément. Si vous transmettez une référence à un noeud de texte, la sélection en résultant est réduite devant le premier caractère du noeud de texte. L´invocation de cette méthode pour une sélection existante remplace toutes les plages par la nouvelle plage englobant l´élément.
Paramètres
Référence à un noeud élément dans l´arborescence de documents qui devient la sélection.
Valeur renvoyée
Aucune.

selectionLanguageChange() | NN 6 IE s.o. DOM s.o.
selectionLanguageChange(RTLFlag) |
Contrôle le niveau bidi (bidirectionnel) du curseur.
Paramètres
Valeur booléenne: true pour droite à gauche; false pour gauche à droite.
Valeur renvoyée
Aucune.

toString() | NN 6 IE s.o. DOM s.o.
Renvoie une chaîne contenant seulement le contenu du corps à partir de la sélection. Les balises et attributs sont ignorés.
Paramètres
Aucune.
Valeur renvoyée
Valeur de chaîne.