Pergunta simples para a qual não consigo encontrar a resposta: como posso usar JavaScript (ou jQuery) para desmarcar qualquer texto que possa ser selecionado em uma página da web? O usuário do EG clica e arrasta para destacar um pouco de texto - quero ter uma função deselectAll () que limpa essa seleção. Como devo escrever?
Obrigado pela ajuda.
javascript
jquery
man1
fonte
fonte
document.selection
implica a existência de umempty()
método dele. Você já testou o método em todos os outros casos; portanto, também pode testarempty
no caso final.window.getSelection().removeAllRanges();
funciona bem no IE (edge) e no Safari.Melhor testar diretamente os recursos que você deseja:
fonte
Estado dos Assuntos de Não Seleção 2014
Eu fiz algumas pesquisas por conta própria. Aqui está a função que escrevi e estou usando atualmente:
Basicamente,
getSelection().removeAllRanges()
atualmente é suportado por todos os navegadores modernos (incluindo o IE9 +). Este é claramente o método correto para avançar.Os problemas de compatibilidade foram responsáveis por:
getSelection().empty()
document.selection.empty()
Atualizar
Provavelmente, é uma boa ideia agrupar essa funcionalidade de seleção para reutilização.
Criei um wiki da comunidade para que você possa adicionar funcionalidade a ele ou atualizar as coisas à medida que os padrões evoluem.
fonte
Aqui está a resposta aceita, mas em duas linhas de código:
A única verificar que eu não faço é para a existência de removeAllRanges - mas AFAIK não há nenhum navegador que tem tanto
window.getSelection
oudocument.selection
mas não quer ter um.empty
ou.removeAllRanges
para essa propriedade.fonte
window.getSelection () permite acessar o texto selecionado; a partir daí, há algumas coisas que você pode fazer para manipulá-lo.
Leia mais: Seleção de DOM do Mozilla para desenvolvedores
fonte
adicione isso ao seu script para impedir o clique com o botão direito e a seleção de texto.
Exceções podem ser adicionadas a var 'om'.
fonte