Je crée un menu dans HTML / CSS / JS et j'ai besoin d'un moyen d'empêcher que le texte du menu ne soit mis en surbrillance lorsque vous double-cliquez. J'ai besoin d'un moyen de passer les ID de plusieurs divs dans une fonction et de mettre en surbrillance hors tension.
Donc, lorsque l'utilisateur accidentellement (ou à l'intention) double-clique sur le menu, le menu affiche ses sous-éléments, mais son texte ne se met pas en surbrillance.
Il existe un certain nombre de scripts sur le Web, mais beaucoup semblent dépassés. Quelle est la meilleure façon?
Dans (Mozilla, Firefox, Camino, Safari, Google Chrome), vous pouvez utiliser ceci:
div.noSelect { -moz-user-select: none; /* mozilla browsers */ -khtml-user-select: none; /* webkit browsers */ }
Pour IE il n'y a pas d'option CSS, mais vous pouvez capturer l'événement ondragstart et renvoyer faussement;
Mettre à jour
Le support du navigateur pour cette propriété s'est développé depuis 2008.
div.noSelect { -webkit-user-select: none; /* Chrome all / Safari all */ -moz-user-select: none; /* Firefox all */ -ms-user-select: none; /* IE 10+ */ }
Vous pouvez utiliser ce CSS pour simplement cacher la couleur de sélection (non prise en charge par IE):
#id::-moz-selection { background: transparent; } #id::selection { background: transparent; }
Vous pourriez:
J'espère que c'est ce que vous recherchez.
<script type="text/javascript"> function clearSelection() { var sel ; if(document.selection && document.selection.empty){ document.selection.empty() ; } else if(window.getSelection) { sel=window.getSelection(); if(sel && sel.removeAllRanges) sel.removeAllRanges() ; } } </script> <div ondblclick="clearSelection()">Some text goes here.</div>