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 | ||||||||||||||||||
|
||||||||||||||||||
Propriétés spécifiques à l´objet | ||||||||||||||||||
|
||||||||||||||||||
Méthodes spécifiques à l´objet | ||||||||||||||||||
|
||||||||||||||||||
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 | |
|
|
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 | |
|
|
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 | |
|
|
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 | |
|
|
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 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 | |
|
|
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 | |
|
|
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 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. |