Estoy manejando el evento dblclick en un lapso en mi aplicación web. Un efecto secundario es que el doble clic selecciona texto en la página. ¿Cómo puedo evitar que ocurra esta selección?Impedir selección de texto después de hacer doble clic
Respuesta
function clearSelection() {
if(document.selection && document.selection.empty) {
document.selection.empty();
} else if(window.getSelection) {
var sel = window.getSelection();
sel.removeAllRanges();
}
}
También puede aplicar estos estilos al rango de medición para todos los navegadores no-IE y 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+ */
}
o, en Mozilla:
document.body.onselectstart = function() { return false; } // Or any html object
En IE,
document.body.onmousedown = function() { return false; } // valid for any html object as well
Una función de Javascript simple que hace que la c ontenido dentro de una página de elementos no seleccionable:
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 claro:
element.addEventListener('mousedown', function(e){ e.preventDefault(); }, false);
O con jQuery:
jQuery(element).mousedown(function(e){ e.preventDefault(); });
Sí, utilicé esto para resolver el mismo problema que estaba teniendo (+1), excepto que en lugar de 'return false' usé' event.preventDefault() 'que no mata a ningún otro manejador que pueda tener en el mousedown. –
Esto no funciona en IE para mí. –
gracias, me ayudó mucho! – varnie
Para evitar que el IE 8 CTRL y SHIFT clic selección de texto en el elemento individual
var obj = document.createElement("DIV");
obj.onselectstart = function(){
return false;
}
para evitar la selección de texto en el documento
window.onload = function(){
document.onselectstart = function(){
return false;
}
}
Para evitar la selección de texto sólo después de un doble clic:
Usted podría utilizar MouseEvent#detail
propiedad. Para eventos mousedown o mouseup, es 1 más el conteo de clics actual.
document.addEventListener('mousedown', function (event) {
if (event.detail > 1) {
event.preventDefault();
}
}, false);
Ver https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail
¡Esto es increíble! Funciona en Firefox 53. – Zaroth
hilo viejo, pero se me ocurrió una solución que creo que es más limpio ya que no desactiva cada vinculado ni siquiera al objeto, y sólo a prevenir las selecciones de texto al azar y no deseados en el página. Es sencillo, y funciona bien para mí. Aquí hay un ejemplo; Quiero evitar que el texto-selección al hacer clic varias veces en el objeto con la clase "flecha derecha":
$(".arrow-right").hover(function(){$('body').css({userSelect: "none"});}, function(){$('body').css({userSelect: "auto"});});
HTH!
Tuve el mismo problema. Lo resolví cambiando a <a>
y agregué onclick="return false;"
(de modo que al hacer clic no se agregará una nueva entrada al historial del navegador).
- 1. selección Impedir Shift + Clic
- 2. Jeditable - resaltar todo el texto después de hacer doble clic
- 3. Deshabilitar el botón asp.net después de hacer clic para evitar hacer doble clic
- 4. Impedir selección de texto en clics rápidos de botón
- 5. Insertar HTML después de una selección
- 6. Impedir selección en HTML
- 7. Cómo evitar que el texto seleccione un lienzo de HTML5 externo al hacer doble clic en?
- 8. Obtención de información de fila después de un doble clic
- 9. gridview edit requiere hacer doble clic
- 10. Interceptar clic simple o doble del mouse - solo ejecutar doble clic en el código al hacer doble clic
- 11. Salir/deshabilitar el modo de edición después de hacer doble clic en evento manejado
- 12. Eliminar texto después de hacer clic en el cuadro de texto
- 13. Especifique el comportamiento de resaltado al hacer doble clic en un área de texto o cuadro de texto.
- 14. El texto de sangría negativo provoca una selección de enlace grande al hacer clic
- 15. ¿Cómo hacer que el botón no se pueda hacer clic después de hacer clic en él?
- 16. AutoCompleteTextView pantallas 'android.database.sqlite.SQLiteCursor @' ... después de hacer la selección
- 17. Agregar elemento antes/después de la selección de texto
- 18. Distinga entre hacer doble clic con el mouse y hacer clic con el mouse en wpf
- 19. ¿Se está actualizando una vista de texto después de hacer clic en el botón?
- 20. Resaltado con doble clic
- 21. ¿Cómo escuchar para hacer doble clic en jstree?
- 22. Evite hacer doble clic en un botón con knockout.js
- 23. Seleccione texto como "Ctrl + A" al hacer clic en el texto?
- 24. Winforms ListView - Detener comprobación automática al hacer doble clic en
- 25. C# ¿cómo puedo seleccionar todo el texto en un cuadro de texto cuando hago doble clic?
- 26. Hacer doble clic en un evento en el elemento JList
- 27. botón para hacer clic dos veces en asp.net (después de texto AutoPostBack)
- 28. Rotar texto al hacer clic en evento
- 29. ListBox con selección simple y también deseleccionar al hacer clic ...?
- 30. CSS: ¿hay alguna manera de deshacerse del rectángulo de selección después de hacer clic en un enlace?
¿Hay alguna manera de evitar la selección en lugar de eliminar la selección después del hecho? Además, su segunda declaración if podría estar dentro de la otra si para una mejor legibilidad. – David
¡El CSS se ve genial! ¿Alguna idea de si hay algo similar disponible para IE? – David
Disculpa por el desastre con los aparatos ortopédicos; Agarré ese código de otro sitio sin verificarlo. Fijo. No hay equivalente de IE, me temo. –