Je gère l'événement dblclick sur une plage dans mon application Web. Un effet secondaire est que le double clic sélectionne le texte sur la page. Comment puis-je empêcher cette sélection de se produire?Empêcher la sélection de texte après un double-clic
Répondre
function clearSelection() {
if(document.selection && document.selection.empty) {
document.selection.empty();
} else if(window.getSelection) {
var sel = window.getSelection();
sel.removeAllRanges();
}
}
Vous pouvez également appliquer ces styles à la portée pour tous les navigateurs non IE et IE10:
span.no_selection {
-webkit-user-select: none; /* webkit (safari, chrome) browsers */
-moz-user-select: none; /* mozilla browsers */
-khtml-user-select: none; /* webkit (konqueror) browsers */
-ms-user-select: none; /* IE10+ */
}
ou, mozilla:
document.body.onselectstart = function() { return false; } // Or any html object
Sur IE,
document.body.onmousedown = function() { return false; } // valid for any html object as well
Une simple fonction Javascript qui rend le c ontenu à l'intérieur d'une page-élément unselectable:
function makeUnselectable(elem) {
if (typeof(elem) == 'string')
elem = document.getElementById(elem);
if (elem) {
elem.onselectstart = function() { return false; };
elem.style.MozUserSelect = "none";
elem.style.KhtmlUserSelect = "none";
elem.unselectable = "on";
}
}
En javascript plaine:
element.addEventListener('mousedown', function(e){ e.preventDefault(); }, false);
Ou avec jQuery:
jQuery(element).mousedown(function(e){ e.preventDefault(); });
Oui, j'ai utilisé ceci pour résoudre le même problème que moi (+1), excepté au lieu de 'return false' utilisé' event.preventDefault() 'qui ne tue pas les autres gestionnaires que vous pourriez avoir sur mousedown. –
Cela ne fonctionne pas dans IE pour moi. –
merci, ça m'a beaucoup aidé! – varnie
Pour éviter IE 8 CTRL et la sélection de texte SHIFT cliquez sur l'élément individuel
var obj = document.createElement("DIV");
obj.onselectstart = function(){
return false;
}
Pour empêcher la sélection de texte sur le document
window.onload = function(){
document.onselectstart = function(){
return false;
}
}
Pour éviter la sélection de texte seulement après un double clic:
Vous pouvez utiliser la propriété MouseEvent#detail
. Pour les événements mousedown ou mouseup, il s'agit de 1 plus le nombre de clics actuel.
document.addEventListener('mousedown', function (event) {
if (event.detail > 1) {
event.preventDefault();
}
}, false);
Voir https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail
C'est génial! Fonctionne dans Firefox 53. – Zaroth
fil vieux, mais je suis venu avec une solution que je crois est plus propre car il ne désactive pas tous les même lié à l'objet, et seulement empêcher les sélections de texte aléatoires et indésirables sur la page. C'est simple, et ça marche bien pour moi. Voici un exemple; Je veux éviter le texte de sélection lorsque je clique plusieurs fois sur l'objet avec la classe « flèche droite »:
$(".arrow-right").hover(function(){$('body').css({userSelect: "none"});}, function(){$('body').css({userSelect: "auto"});});
HTH!
J'ai eu le même problème. Je l'ai résolu en passant à <a>
et ajouter onclick="return false;"
(de sorte que le fait de cliquer dessus n'ajoutera aucune nouvelle entrée à l'historique du navigateur).
- 1. sIFR: Comment empêcher "cliquer pour activer la sélection de texte" dans Firefox?
- 2. Listbox avec liste personnalisée - empêcher la sélection?
- 3. Empêcher la surbrillance du tableau de texte
- 4. Manipuler la sélection de texte dans Powerpoint
- 5. Comment empêcher CFEXECUTE de se bloquer après un PrintStackTrace?
- 6. Générez un jqGrid après Jquery date Allez sélection
- 7. Empêcher la sélection multiple dans le contrôle d'onglet WPF?
- 8. sélection de texte en CSS?
- 9. Sélection de tous les éléments après la liaison WPF ListView
- 10. .NET ListView: événement après modification de la sélection
- 11. Désactivation de la sélection de texte dans DocumentViewer
- 12. Comment rendre TextBox visible après la sélection d'un élément dans un groupe d'options
- 13. jQuery: Append texte après un champ d'entrée
- 14. sélection de texte d'accès dans un TreeNode (WinForms)
- 15. Inverser la sélection de texte par programmation dans une zone de texte enrichi (vb.net)
- 16. Sélection du texte d'un JLabel?
- 17. désactiver la sélection de texte tout en appuyant sur «shift»
- 18. Comment puis-je refléter la sélection de texte?
- 19. Conserver la sélection de texte lorsque le focus change
- 20. Comment désactiver temporairement la sélection de texte en utilisant JavaScript?
- 21. ListBox conserve la sélection après avoir perdu le focus
- 22. Redimensionner la boîte de sélection pour élever le texte choisi
- 23. Styler la couleur de sélection d'un type d'entrée = texte, possible?
- 24. Flouter une sélection après un changement dans Internet Explorer 6
- 25. getSelection() et insertNode - Sélection de texte Javascript
- 26. C#: Problème lors de la sélection de différents éléments après l'utilisation de ListView.SelectedItems [0]
- 27. Conserver l'état de la sélection après la modification de la collection backend dans ListView
- 28. Créer une sélection de texte rectangulaire
- 29. comment ajouter le texte d'une zone de sélection et le texte de la saisie de formulaire dans un champ caché
- 30. Comment puis-je positionner un élément à côté de la sélection du texte utilisateur?
Est-il possible d'empêcher réellement la sélection plutôt que de supprimer la sélection après le fait? En outre, votre seconde instruction if pourrait être à l'intérieur de l'autre si pour une meilleure lisibilité. – David
Le CSS est superbe! Une idée s'il y a quelque chose de similaire disponible pour IE? – David
Désolé pour le bordel avec les accolades; J'ai attrapé ce code d'un autre site sans vérifier. Fixé. Je n'ai pas d'équivalent IE. –