selectionNN 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
 
anchorNodeanchorOffsetfocusNodefocusOffset
isCollapsedrangeCounttypetypeDetail
 
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, focusNodeNN 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, focusOffsetNN 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

isCollapsedNN 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

rangeCountNN 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

typeNN 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

typeDetailNN 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.