Deshabilitar tecla "ctrl"

Necesito deshabilitar el uso de la tecla control, para evitar la apertura de nuevas ventanas (ctrl + U), que agreguen a favoritos (ctrl + I), etc.
Con el siguiente código lo consigo:
<html>
<head>
<script language="JavaScript">
function checkKey(evt) {
if (evt.ctrlKey)
alert("boton control deshabilitado");
}
</script>
</head>
<body onKeyDown="checkKey(event)">
Pulsa el boton control.
</body>
</html>
La pregunta es si se puede conseguir el mismo efecto sin la necesidad de recurrir a lanzar un alert. Yo no he encontrado nada.
Respuesta
1
Creo que no tengo una respuesta como la que esperas... creo que es necesario cortar la ejecución normal para que no haga caso el navegador.
La idea del alert no es mala, la verdad es que es muy ingeniosa, te felicito. Tal vez puedas completarlo un poco más haciendo lo siguiente:
<html>
<head>
<script language="JavaScript">
var control = false;
function checkKey(evt) {
if (evt.keyCode == 17){
control = true;
return true;
}
if(control){
alert("no toques");
return false;
}
}
function salir(evt) {
if (evt.keyCode == 17)
control = false;
}
</script>
</head>
<body onKeyDown="checkKey(event)" onKeyUp="salir(event);">
Pulsa el boton control.
</body>
</html>
Asi solo saldra el alert cuando el usuario realmente use el Ctrl+algo.
Espere que te ayude.
Ok, me explico un poquito mejor.
Tengo una página que se abre en una ventana sin ningún tipo de menú, no botones del navegador. El objetivo principal es que no se pueda añadir a favoritos.
El problema es que si un usuario pulsa ctrl + U, se abre mi página en otra ventana, con todos sus menús, con lo cual ya la pueden añadir a favoritos.
Eso es lo que quiero evitar. Si pruebas el código que te envié, verás que no hay forma de pulsar un "ctrl + U", al lanzar el alert, impide la pulsación simultánea de las dos teclas.
En principio con eso lo tengo solucionado, pero el sacar un mensaje para impedir el uso de esa tecla me parece un poco desagradable para el usuario, vamos, que es un coñazo.
La cosa es que si se puede hacer lo mismo pero sin recurrir al truco del alert. La cosa es engañar al navegador, de alguna manera, para que no permita la pulsación simultanea de las dos teclas.
Espero haberme explicado mejor.
Gracias de nuevo.
Pues hombre, yo creo que si... puedes hacer lo que quieras... la dificultad estriba en capturar el evento, lo que hagas con el es cosa tuya...
Prueba poner:
<html>
<head>
<script language="JavaScript">
function checkKey(evt) {
if (evt.ctrlKey)
return false;
}
</script>
</head>
<body onKeyDown="checkKey(event)">
Pulsa el boton control.
</body>
</html>
O algo así, lo que quieras que pase...
No entiendo del todo lo que pretendes, ¿puedes preguntármelo de otra manera?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas