¿Tiene jQuery o jQuery-UI alguna funcionalidad para deshabilitar la selección de texto para elementos de documento dados?
javascript
jquery
jquery-ui
Dawid Ohia
fuente
fuente
Respuestas:
En jQuery 1.8, esto se puede hacer de la siguiente manera:
fuente
Si usa jQuery UI, hay un método para eso, pero solo puede manejar la selección del mouse (es decir, CTRL+ Asigue funcionando):
El código es realmente simple, si no quieres usar jQuery UI:
fuente
Encontré esta respuesta ( Prevenir el resaltado de la tabla de texto ) más útil, y tal vez se pueda combinar con otra forma de proporcionar compatibilidad con IE.
fuente
Aquí hay una solución más completa para la selección de desconexión y la cancelación de algunas de las teclas de acceso rápido (como Ctrl+ ay Ctrl+ c. Prueba: Cmd + ay Cmd+ c)
y ejemplo de llamada:
jsfiddle.net/JBxnQ/
Esto también podría no ser suficiente para las versiones antiguas de FireFox (no puedo decir cuál). Si todo esto no funciona, agregue lo siguiente:
fuente
attr('unselectable', 'on')
dos veces? ¿Es un error tipográfico o es útil?Lo siguiente deshabilitaría la selección del 'elemento' de todas las clases en todos los navegadores comunes (IE, Chrome, Mozilla, Opera y Safari):
fuente
fuente
Esto se puede hacer fácilmente usando JavaScript. Esto es aplicable a todos los navegadores.
Llamar a esta función
fuente
Esto es realmente muy simple. Para deshabilitar la selección de texto (y también hacer clic + arrastrar texto (por ejemplo, un enlace en Chrome)), solo use el siguiente código jQuery:
Todo esto hace que evite que ocurra el valor predeterminado cuando hace clic con el mouse (
mousedown()
) en las etiquetasbody
yhtml
. Puede cambiar fácilmente el elemento simplemente cambiando el texto entre las dos citas (por ejemplo, cambiar$('body, html')
a$('#myUnselectableDiv')
para que elmyUnselectableDiv
div sea, bueno, no seleccionable.Un fragmento rápido para mostrar / probar esto:
Tenga en cuenta que este efecto no es perfecto y funciona mejor mientras hace que no se pueda seleccionar toda la ventana. Es posible que también desee agregar
también, al usar esa sección de la respuesta de Vladimir anterior. (llegar a su publicación aquí )
fuente
Solución de 1 línea para CROMO:
y FF:
IE requiere establecer el atributo "no seleccionable" (detalles en la parte inferior).
Probé esto en Chrome y funciona. Esta propiedad se hereda, por lo que establecerla en el elemento body deshabilitará la selección en todo el documento.
Detalles aquí: http://help.dottoro.com/ljrlukea.php
Si está utilizando Closure, simplemente llame a esta función:
Maneja todos los navegadores de manera transparente.
Los navegadores que no son IE se manejan así:
Definido aquí: http://closure-library.googlecode.com/svn/!svn/bc/4/trunk/closure/goog/docs/closure_goog_style_style.js.source.html
La porción IE se maneja así:
fuente
Creo que este código funciona en todos los navegadores y requiere la menor sobrecarga. Es realmente un híbrido de todas las respuestas anteriores. ¡Avísame si encuentras un error!
Añadir CSS:
Añadir jQuery:
Opcional: para deshabilitar la selección de todos los elementos secundarios también, puede cambiar el bloque IE a:
Uso:
fuente
He intentado todos los enfoques, y este es el más simple para mí porque estoy usando IWebBrowser2 y no tengo 10 navegadores con los que lidiar:
¡Funciona perfectamente para mí!
fuente
Una solución a esto, para los casos apropiados, es usar un
<button>
para el texto que no desea que se pueda seleccionar. Si está vinculado alclick
evento en algún bloque de texto y no desea que ese texto sea seleccionable, cambiarlo para que sea un botón mejorará la semántica y también evitará que se seleccione el texto.fuente
La mejor y más simple forma en que lo encontré, evita ctrl + c, haga clic derecho. En este caso bloqueé todo, así que no tengo que especificar nada.
fuente