Window.getSelection()

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

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:

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

Especificação Status Comentário
HTML Editing APIs
The definition of 'Window.getSelection()' in that specification.
Rascunho editorial Definição inicial

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também