Window.getSelection()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

Resumo

Retorna um objeto Selection representando a parte do texto selecionada pelo usuário ou a posição atual do cursor.

Syntax

selection = window.getSelection();
  • selection é um objeto Selection. Quando convertido para string, seja adicionando uma string vazia (" ") ou usando String.toString(), esse objeto retorna o texto selecionado.

Example

js
function foo() {
  var selObj = window.getSelection();
  alert(selObj);
  var selRange = selObj.getRangeAt(0);
  // do stuff with the range
}

Nota

Representação do objeto Selection em String

No JavaScript, quando um objeto é passado para uma função que espera uma string (como window.alert() ou document.write()), o método toString() do objeto é chamado e o valor retornado é passado para a função. Isso pode fazer com que o objeto pareça ser uma string quando usado com outras funções quando na verdade é um objeto com propriedades e métodos.

No exemplo acima, selObj.toString() é chamado automaticamente quando é passado para window.alert(). Contudo, tentar usar propriedades ou métodos do objeto JavaScript String como length ou substr diretamente no objeto Selection resultará em erro se o objeto não possuir essa propriedade ou método e pode retornar valores inesperados mesmo se os tiver. Para usar um objecto Selection como uma string, faça a chamada do seu método toString() diretamente:

js
var selectedText = selObj.toString();
  • selObj é um objeto Selection.
  • selectedText é uma string (Selected text).

Objectos Relacionados

É útil também notar que você pode chamar Document.getSelection(), que funciona de forma idêntica.

Inputs HTML provêm APIs mais simples para se trabalhar com seleções (veja HTMLInputElement.setSelectionRange()).

Note a diferença entre selection e focus. Document.activeElement retorna o elemento com foco.

Especificações

Specification
Selection API
# dom-window-getselection

Compatibilidade com navegadores

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
getSelection

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Veja também