2010-07-30 22 views
7

Estoy construyendo un kiosco con pantalla táctil que usará Google Chrome para mostrar el contenido. No hay teclado, excepto un teclado virtual que aparecerá para ingresar información de nombre en ciertas pantallas. En ninguna parte del quiosco, el usuario deberá seleccionar nada.Desactivar selección de texto en Chrome

Cuando coloco mi dedo en cualquier lugar de la pantalla y lo arrastro, los campos azules de selección comienzan a aparecer. Tengo que acabar con eso.

Inicialmente estaba usando Opera, que tiene una función de configuración para deshabilitar la selección de texto. No pude encontrar el equivalente para esto en Chrome.

¿Alguien sabe si hay una configuración para esto en Chrome, o alternativamente qué Javascript logrará esto?

Respuesta

8

No sé si hay un ajuste de configuración en cromo para esto, pero una rápida de Google (source) di esto:

window.onload = function() { 
    document.onselectstart = function() {return false;} // ie 
    document.onmousedown = function() {return false;} // mozilla 
} 


/* You can attach the events to any element. In the following example 
I'll disable selecting text in an element with the id 'content'. */ 

window.onload = function() { 
    var element = document.getElementById('content'); 
    element.onselectstart = function() { return false; } // ie 
    element.onmousedown = function() { return false; } // mozilla 
} 

PS:

Sólo probado para ver si esto interferiría con cualquier evento onclick, y no es así.

+0

De hecho !! Si tuviera un primogénito sería tuyo. Y qué recurso tan fantástico en internet.com ... una dirección web tan oscura, no es de extrañar que nunca la haya encontrado ...;) –

+0

@Ron Lol! Y, gracias :) –

+0

probablemente debería marcarse como la respuesta correcta –

14

¿Por qué no simplemente usar CSS para eliminar el efecto de selección en lugar de confiar en Javascript?

*::selection { 
    background:transparent; 
} 

*::-moz-selection { 
    background:transparent; 
} 

*::-webkit-selection { 
    background:transparent; 
} 

/* DO NOT COMBINE... IF COMBINED, IT WILL REFUSE TO WORK */ 
/* FOR CHROME 5+ (untested in 4), ONLY ::SELECTION IS REQUIRED */ 

La selección seguirá siendo posible, pero no habrá rectángulos azules. De hecho, la selección será totalmente invisible para el usuario.

Por lo que puedo leer de su escenario, solo está tratando de deshacerse de los rectángulos de selección.

+0

esto también funciona y me gustan las soluciones de CSS ... acabo de descubrir que el otro comportamiento que estoy tratando de matar es la capacidad de arrastrar imágenes por la página ... buscando una solución CSS para eso también. –

+0

Tenga en cuenta que esto no oculta por completo todos los efectos. Si un usuario selecciona texto, la selección no será visible, verdadera. Pero si luego intentan arrastrar el dedo dentro de la selección, el texto seleccionado comenzará a arrastrarse en un bloque como lo haría normalmente. Sólo algo para tener en cuenta. –

Cuestiones relacionadas