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 objetoSelection
. Quando convertido para string, seja adicionando uma string vazia (" ") ou usandoString.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 objetoSelection
.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