Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Window : méthode getSelection()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La méthode getSelection() de l'interface Window retourne l'objet Selection associé au document de la fenêtre, représentant la plage de texte sélectionnée par l'utilisateur·ice ou la position actuelle du curseur.

Syntaxe

js
getSelection()

Paramètres

Aucun.

Valeur de retour

Un objet Selection, ou null si le document associé n'a pas de contexte de navigation (par exemple, si la fenêtre est un <iframe> qui n'est pas attaché à un document).

Lorsque cette méthode est appelée sur un <iframe> qui n'est pas affiché (par exemple, lorsque display: none est défini), Firefox renvoie null, tandis que les autres navigateurs retournent un objet Selection avec Selection.type défini sur None.

Exemples

js
function toto() {
  const selObj = window.getSelection();
  alert(selObj);
  const selRange = selObj.getRangeAt(0);
  // travailler avec la sélection
}

Notes

Représentation sous forme de chaîne de caractères de l'objet Selection

En JavaScript, lorsqu'un objet est passé à une fonction qui attend une chaîne de caractères (comme window.alert() ou document.write()), la méthode toString() de l'objet est appelée et la valeur retournée est passée à la fonction. Cela peut donner l'impression que l'objet est une chaîne de caractères lorsqu'il est utilisé avec d'autres fonctions alors qu'il s'agit en réalité d'un objet avec des propriétés et des méthodes.

Dans l'exemple ci-dessus, selObj.toString() est automatiquement appelé lorsqu'il est passé à window.alert(). Cependant, tenter d'utiliser une propriété ou une méthode JavaScript String telle que length ou substr directement sur un objet Selection entraînera une erreur s'il ne possède pas cette propriété ou méthode et peut retourner des résultats inattendus s'il la possède. Pour utiliser un objet Selection comme une chaîne de caractères, appelez directement sa méthode toString() :

js
const selectedText = selObj.toString();
  • selObj est un objet Selection.
  • selectedText est une chaîne de caractères (texte sélectionné).

Objets associés

Vous pouvez appeler Document.getSelection(), qui fonctionne de manière identique à Window.getSelection().

Il convient de noter qu'actuellement getSelection() ne fonctionne pas sur le contenu des éléments HTML <textarea> et <input> dans Firefox et Edge (Legacy). HTMLInputElement.setSelectionRange() ou les propriétés selectionStart et selectionEnd peuvent être utilisées pour contourner ce problème.

Remarquez également la différence entre sélection textuelle (selection en anglais) et la sélection active (focus en anglais). Document.activeElement retourne l'élément sélectionné.

Spécifications

Specification
Selection API
# dom-window-getselection

Compatibilité des navigateurs

Voir aussi