JQuery ou jQuery-UI ont-ils une fonctionnalité pour désactiver la sélection de texte pour des éléments de document donnés?
javascript
jquery
jquery-ui
Dawid Ohia
la source
la source
Réponses:
Dans jQuery 1.8, cela peut être fait comme suit:
la source
Si vous utilisez jQuery UI, il existe une méthode pour cela, mais elle ne peut gérer que la sélection de la souris (c'est-à-dire que CTRL+ Afonctionne toujours):
Le code est vraiment simple, si vous ne voulez pas utiliser l'interface utilisateur jQuery:
la source
J'ai trouvé cette réponse ( Prevent Highlight of Text Table ) la plus utile, et peut-être qu'elle peut être combinée avec une autre façon de fournir une compatibilité IE.
la source
Voici une solution plus complète pour la sélection de déconnexion et l'annulation de certaines touches de raccourci (telles que Ctrl+ aet Ctrl+ c. Test: Cmd + aet Cmd+ c)
et appelez l'exemple:
jsfiddle.net/JBxnQ/
Cela pourrait également ne pas être suffisant pour les anciennes versions de FireFox (je ne peux pas dire lesquelles). Si tout cela ne fonctionne pas, ajoutez ce qui suit:
la source
attr('unselectable', 'on')
deux fois? Est-ce une faute de frappe ou est-ce utile?Les éléments suivants désactiveraient la sélection de toutes les classes «élément» dans tous les navigateurs courants (IE, Chrome, Mozilla, Opera et Safari):
la source
la source
Cela peut facilement être fait en utilisant JavaScript Ceci est applicable à tous les navigateurs
Appel à cette fonction
la source
C'est en fait très simple. Pour désactiver la sélection de texte (et également cliquer + faire glisser le texte (par exemple un lien dans Chrome)), utilisez simplement le code jQuery suivant:
Tout cela empêche la valeur par défaut de se produire lorsque vous cliquez avec votre souris (
mousedown()
) dans les balisesbody
ethtml
. Vous pouvez modifier très facilement l'élément en changeant le texte entre les deux guillemets (par exemple le changement$('body, html')
de$('#myUnselectableDiv')
faire lamyUnselectableDiv
div être, eh bien, unselectable.Un extrait rapide pour vous montrer / prouver ceci:
Veuillez noter que cet effet n'est pas parfait et fonctionne mieux tout en rendant la fenêtre entière non sélectionnable. Vous pouvez également ajouter
ainsi, en utilisant cette section de la réponse de Vladimir ci-dessus. (accédez à son message ici )
la source
Solution 1 ligne pour CHROME:
et FF:
IE nécessite de définir l'attribut "non sélectionnable" (détails en bas).
J'ai testé cela dans Chrome et cela fonctionne. Cette propriété est héritée, donc la définir sur l'élément body désactivera la sélection dans tout votre document.
Détails ici: http://help.dottoro.com/ljrlukea.php
Si vous utilisez Closure, appelez simplement cette fonction:
Il gère tous les navigateurs de manière transparente.
Les navigateurs non IE sont traités comme ceci:
Défini ici: http://closure-library.googlecode.com/svn/!svn/bc/4/trunk/closure/goog/docs/closure_goog_style_style.js.source.html
La partie IE est gérée comme ceci:
la source
Je pense que ce code fonctionne sur tous les navigateurs et nécessite le moins de surcharge. C'est vraiment un hybride de toutes les réponses ci-dessus. Faites-moi savoir si vous trouvez un bug!
Ajouter CSS:
Ajouter jQuery:
Facultatif: pour désactiver également la sélection de tous les éléments enfants, vous pouvez remplacer le bloc IE par:
Usage:
la source
J'ai essayé toutes les approches, et celle-ci est la plus simple pour moi car j'utilise IWebBrowser2 et je n'ai pas 10 navigateurs à gérer:
Fonctionne parfaitement pour moi!
la source
Une solution à cela, dans les cas appropriés, consiste à utiliser un
<button>
pour le texte que vous ne souhaitez pas pouvoir sélectionner. Si vous liez l'click
événement à un bloc de texte et que vous ne voulez pas que ce texte soit sélectionnable, le changer en bouton améliorera la sémantique et empêchera également le texte d'être sélectionné.la source
Le meilleur moyen et le plus simple que je l'ai trouvé, empêche ctrl + c, clic droit. Dans ce cas, j'ai tout bloqué, donc je n'ai rien à spécifier.
la source