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 julho de 2015.
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
Loading…