Ich behandle das dblclick-Ereignis in einem Zeitraum in meiner Web-App. Ein Nebeneffekt ist, dass der Doppelklick Text auf der Seite auswählt. Wie kann ich verhindern, dass diese Auswahl erfolgt?
javascript
selection-object
David
quelle
quelle
-ms-user-select: none;
siehe blogs.msdn.com/b/ie/archive/2012/01/11/… @PaoloBergantinoIn einfachem Javascript:
Oder mit jQuery:
quelle
return false
verwendet wurde,event.preventDefault()
das keine anderen Handler tötet, die Sie möglicherweise beim Mousedown haben.element
es sich um einen Textbereich handelt, ja.So verhindern Sie die Textauswahl NUR nach einem Doppelklick:
Sie könnten
MouseEvent#detail
Eigentum verwenden. Für Mousedown- oder Mouseup-Ereignisse ist es 1 plus die aktuelle Klickzahl.Siehe https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail
quelle
(event.detail === 2)
diese Option, um NUR Doppelklicks (und keine Dreifachklicks usw.) wirklich zu verhindernFWIW, ich
user-select: none
habe das übergeordnete Element der untergeordneten Elemente festgelegt, die beim Doppelklicken auf das übergeordnete Element nicht ausgewählt werden sollen. Und es funktioniert! Coole Sache istcontenteditable="true"
, Textauswahl usw. funktioniert immer noch bei den untergeordneten Elementen!So wie:
quelle
style="user-select: note"
überall zu pfeffern hat das Problem gelöst , das ich zu lösen versuchte :)Eine einfache Javascript-Funktion, die den Inhalt eines Seitenelements nicht auswählbar macht:
quelle
Für diejenigen, die eine Lösung für Angular 2+ suchen .
Sie können die
mousedown
Ausgabe der Tabellenzelle verwenden.Und verhindern, wenn die
detail > 1
.Die
dblclick
Ausgabe funktioniert weiterhin wie erwartet.quelle
oder auf Mozilla:
Auf IE,
quelle
document.body
.Alter Thread, aber ich habe eine Lösung gefunden, die meiner Meinung nach sauberer ist, da sie nicht alle an das Objekt gebundenen Elemente deaktiviert und nur zufällige und unerwünschte Textauswahlen auf der Seite verhindert. Es ist unkompliziert und funktioniert gut für mich. Hier ist ein Beispiel; Ich möchte die Textauswahl verhindern, wenn ich mehrmals auf das Objekt mit der Klasse "Pfeil-rechts" klicke:
HTH!
quelle
Wenn Sie versuchen, die Auswahl von Text mit einer beliebigen Methode sowie nur mit einem Doppelklick vollständig zu verhindern, können Sie das
user-select: none
CSS-Attribut verwenden. Ich habe in Chrome 68 getestet, aber laut https://caniuse.com/#search=user-select sollte es in den anderen aktuellen normalen Benutzerbrowsern funktionieren.In Chrome 68 wird es verhaltensmäßig von untergeordneten Elementen geerbt und erlaubte nicht die Auswahl des enthaltenen Textes eines Elements, selbst wenn Text ausgewählt wurde, der das Element umgibt und einschließt.
quelle
Um IE 8 STRG und UMSCHALT zu verhindern, klicken Sie auf die Textauswahl für ein einzelnes Element
So verhindern Sie die Textauswahl im Dokument
quelle
Ich hatte das gleiche Problem. Ich habe es gelöst, indem ich zu
<a>
und hinzufügeonclick="return false;"
(damit durch Klicken darauf kein neuer Eintrag zum Browserverlauf hinzugefügt wird).quelle