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

BCD tables only load in the browser

Veja também