validacion - ¿Cómo puedo desactivar la selección de texto temporalmente usando JavaScript?
validar nombre javascript (2)
esta es una pregunta un poco específica, así que iré directo al grano.
Estoy trabajando en una rutina de arrastrar y soltar corta y simple para parte de una aplicación web, y aunque el bit de arrastrar y soltar funciona bien, el sitio se vuelve feo y tástico durante la operación porque el navegador todavía realiza la operación predeterminada y funciona en la selección de texto.
He intentado algunas soluciones que implican devolver false desde el mousedown o hacer clic en eventos, y aunque deshabilitan la selección de texto en algunos navegadores, también parecen desactivar por completo el evento mouseup, arruinando el bit "drop" del script y dejando esto perma-flotante icono colgando alrededor del mouse-- no es divertido.
Realmente no quiero que la selección de texto desaparezca por completo, solo quiero sugerir que el navegador ... no lo haga mientras arrastra, si tiene sentido. Como conozco el área que se ve afectada (hay iframes involucrados) puedo aplicar fácilmente una propiedad a los elementos afectados, etc. Puedo publicar el código si es necesario, pero estoy buscando más de una solución general. Dado que esto es solo una cuestión estética, estoy buscando una solución que funcione en la mayoría de los navegadores, en realidad no es tan crucial.
¡Gracias!
Hasta donde sé, el elemento arrastrado debe colocarse sobre otros elementos debajo del puntero del mouse. Si se mueve con el puntero del mouse, evita cualquier selección en la página.
En los navegadores W3C, puede llamar al método preventDefault
en el objeto de event
. El IE equivalente es establecer el returnValue
en false
.
function stopDefault(e) {
if (e && e.preventDefault) {
e.preventDefault();
}
else {
window.event.returnValue = false;
}
return false;
}
EDITAR: Simplemente vuelva a leer la pregunta y también puede evitar la acción predeterminada en la parte de su código que maneja el arrastre real, y no solo en el mousedown inicial o haga clic.