Vida Una Homepage
Forum Home Forum Home > Programación > Códigos JavaScript
  New Posts New Posts RSS Feed - Comó deshabilitar teclas por javascript
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


Comó deshabilitar teclas por javascript

 Post Reply Post Reply
Author
Message
Programador View Drop Down
Expert@
Expert@
Avatar

Joined: 09 Mayo 2009
Location: San Pedro Alc.
Status: Offline
Points: 54
Post Options Post Options   Thanks (0) Thanks(0)   Quote Programador Quote  Post ReplyReply Direct Link To This Post Topic: Comó deshabilitar teclas por javascript
    Posted: 28 Febrero 2010 at 12:51am
Existen ocasiones que durante el desarrollo de un página web (especialmente cuando se usa java o por razones de seguridad) es necesario impedir que el usuario presione algunas teclas. El script que les dejo a continuación sirve para esto.

Notar 1: Este script es útil solo si abrieron la página en modo modal sin la barra del explorador ^_^

Notar 2: Si bien el objetivo del script es el del impedir que un usuario presiones ciertas combinaciones de teclas, el código utilizado puede usarse para capturar las teclas que presiona el usuario para diferentes motivos.


<script>
//Autor: rbedat,
//Este script permite deshabilitar:
// El boton derecho del mouse,
// El F5 y F11
// El Ctrl + F5
// El Ctrl + N y Ctrl + U
// El Ctrl + R
// El Ctrl + [<-] y el Ctrl + [->]
// El Backspace fuera de los formularios.
//
//Tener en cuenta que utiliza los eventos:
// onkeydown y onkeyup

//begin desabilitar teclas

var controlprecionado = 0;
var altprecionado = 0;
function desactivarCrlAlt(teclaactual){
//alert(teclaactual);
var desactivar = false;
//Ctrl +
if (controlprecionado==17){
if (teclaactual==78 || teclaactual==85 ){
//alert("Ctrl+N y Ctrl+U deshabilitado");
desactivar=true;
}
if (teclaactual==82){
//alert("Ctrl+R deshabilitado");
desactivar=true;
}
if (teclaactual==116){
//alert("Ctrl+F5 deshabilitado");
desactivar=true;
}
if (teclaactual==114){
//alert("Ctrl+F3 deshabilitado");
desactivar=true;
}
}
//Alt +
if (altprecionado==18){
if (teclaactual==37){
//alert("Alt+ [<-] deshabilitado");
desactivar=true;
}
if (teclaactual==39){
//alert("Alt+ [->] deshabilitado");
desactivar=true;
}
}
if (teclaactual==17)controlprecionado=teclaactual;
if (teclaactual==18)altprecionado=teclaactual;
return desactivar;
}

document.onkeyup = function(){
if (window.event && window.event.keyCode==17){
controlprecionado = 0;
}
if (window.event && window.event.keyCode==18){
altprecionado = 0;
}
}

document.onkeydown = function(){
//116->f5
//122->f11
//117->f6
//114->f3
//alert(window.event.keyCode);
if (window.event &&
desactivarCrlAlt(window.event.keyCode)){
return false;
}
if (window.event &&
(window.event.keyCode == 122 ||
window.event.keyCode == 116 ||
window.event.keyCode == 114 ||
window.event.keyCode == 117)){
//alert("lo siento!, no hay f5, f3, f6 ni f11 :P");
window.event.keyCode = 505;
}
if (window.event.keyCode == 505){
return false;
}
if (window.event && (window.event.keyCode == 8)){
valor = document.activeElement.value;
if (valor==undefined) {
//Evita Back en página.
//alert("lo siento!, no hay back :P");
return false;
}
else{
if (document.activeElement.getAttribute('type')
=='select-one')
{ return false; } //Evita Back en select.
if (document.activeElement.getAttribute('type')
=='button')
{ return false; } //Evita Back en button.
if (document.activeElement.getAttribute('type')
=='radio')
{ return false; } //Evita Back en radio.
if (document.activeElement.getAttribute('type')
=='checkbox')
{ return false; } //Evita Back en checkbox.
if (document.activeElement.getAttribute('type')
=='file')
{ return false; } //Evita Back en file.
if (document.activeElement.getAttribute('type')
=='reset')
{ return false; } //Evita Back en reset.
if (document.activeElement.getAttribute('type')
=='submit')
{ return false; } //Evita Back en submit.
else //Text, textarea o password
{
if (document.activeElement.value.length==0){
//No realiza el backspace(largo igual a 0).
return false;
}
else{
//Realiza el backspace.
document.activeElement.value.keyCode = 8; }
}
}
}
}
//end desabilitar teclas
</script>
Back to Top
Sponsored Links


Back to Top
 Post Reply Post Reply

Forum Jump Forum Permissions View Drop Down



This page was generated in 0.047 seconds.