O jQuery ou a jQuery-UI possuem alguma funcionalidade para desativar a seleção de texto para determinados elementos do documento?
javascript
jquery
jquery-ui
Dawid Ohia
fonte
fonte
Respostas:
No jQuery 1.8, isso pode ser feito da seguinte maneira:
fonte
Se você usa a interface do usuário do jQuery, existe um método para isso, mas ele pode lidar apenas com a seleção do mouse (ou seja, CTRL+ Aainda está funcionando):
O código é realmente simples, se você não quiser usar a interface do usuário do jQuery:
fonte
Achei esta resposta ( Evitar destaque da tabela de texto ) mais útil e talvez possa ser combinada com outra maneira de fornecer compatibilidade com o IE.
fonte
Aqui está uma solução mais abrangente para a seleção de desconexão e o cancelamento de algumas das teclas de atalho (como Ctrl+ ae Ctrl+ c. Teste: Cmd + ae Cmd+ c)
e chame exemplo:
jsfiddle.net/JBxnQ/
Isso também pode não ser suficiente para versões antigas do FireFox (não sei qual). Se tudo isso não funcionar, adicione o seguinte:
fonte
attr('unselectable', 'on')
duas vezes? É um erro de digitação ou é útil?O seguinte desabilitaria a seleção do 'item' de todas as classes em todos os navegadores comuns (IE, Chrome, Mozilla, Opera e Safari):
fonte
fonte
Isso pode ser feito facilmente usando JavaScript Isso é aplicável a todos os navegadores
Ligue para esta função
fonte
Isso é realmente muito simples. Para desativar a seleção de texto (e também clicar em + arrastar texto (por exemplo, um link no Chrome)), basta usar o seguinte código jQuery:
Tudo isso impede que o padrão aconteça quando você clica com o mouse (
mousedown()
) nas tagsbody
ehtml
. Você pode facilmente alterar o elemento apenas alterando o texto entre as duas aspas (por exemplo, mude$('body, html')
para$('#myUnselectableDiv')
para tornar amyUnselectableDiv
div, assim, não selecionável.Um snippet rápido para mostrar / provar isso para você:
Observe que esse efeito não é perfeito e tem o melhor desempenho, tornando a janela inteira não selecionável. Você também pode querer adicionar
também, usando a seção da resposta de Vladimir acima. (acesse o post dele aqui )
fonte
Solução de 1 linha para o CHROME:
e FF:
O IE requer a configuração do atributo "não selecionável" (detalhes na parte inferior).
Eu testei isso no Chrome e funciona. Esta propriedade é herdada, portanto, defini-la no elemento body irá desativar a seleção em todo o documento.
Detalhes aqui: http://help.dottoro.com/ljrlukea.php
Se você estiver usando o Closure, basta chamar esta função:
Ele lida com todos os navegadores de forma transparente.
Os navegadores não-IE são tratados desta maneira:
Definido aqui: http://closure-library.googlecode.com/svn/!svn/bc/4/trunk/closure/goog/docs/closure_goog_style_style.js.source.html
A parte do IE é tratada assim:
fonte
Eu acho que esse código funciona em todos os navegadores e requer o mínimo de sobrecarga. É realmente um híbrido de todas as respostas acima. Deixe-me saber se você encontrar um bug!
Adicione CSS:
Adicione jQuery:
Opcional: Para desativar também a seleção de todos os elementos filhos, é possível alterar o bloco IE para:
Uso:
fonte
Eu tentei todas as abordagens, e essa é a mais simples para mim, porque estou usando o IWebBrowser2 e não tenho 10 navegadores para lidar com:
Funciona perfeitamente para mim!
fonte
Uma solução para isso, nos casos apropriados, é usar a
<button>
para o texto que você não deseja selecionar. Se você está vinculando oclick
evento em algum bloco de texto e não deseja que o texto seja selecionável, alterá-lo para um botão melhorará a semântica e também impedirá que o texto seja selecionado.fonte
A maneira melhor e mais simples que eu encontrei, evita ctrl + c, clique direito. Nesse caso, bloqueei tudo, para não precisar especificar nada.
fonte