Foros del Web » Programando para Internet » Javascript »

Bloqueo de teclas para IE y FF

Estas en el tema de Bloqueo de teclas para IE y FF en el foro de Javascript en Foros del Web. Buenas tardes: Me van a disculpar por hacer esta consulta pero tengo, para variar, un lío entre manos y ya de rabia no puedo avanzar ...
  #1 (permalink)  
Antiguo 25/09/2011, 14:58
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 2 meses
Puntos: 10
Bloqueo de teclas para IE y FF

Buenas tardes:
Me van a disculpar por hacer esta consulta pero tengo, para variar, un lío entre manos y ya de rabia no puedo avanzar ni retroceder. Verán, tengo este código que me permite bloquear varias teclas:

Cita:
//Inicio desabilitar teclas
var controlprecionado = 0;
var altprecionado = 0;

function desactivarCrlAlt(teclaactual)
{
var desactivar = false;

//Ctrl +
if (controlprecionado==17)
{
if (teclaactual==78 || teclaactual==85 ) //Ctrl+N y Ctrl+U deshabilitado
{desactivar=true;}
if (teclaactual==82) //Ctrl+R deshabilitado
{desactivar=true;}
if (teclaactual==116) //Ctrl+F5 deshabilitado
{desactivar=true;}
if (teclaactual==114) //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()
{
//114 -> F3 116 -> F5 117 -> F6 122 -> F11
if (window.event && desactivarCrlAlt(window.event.keyCode))
{return false;}
if (window.event && (window.event.keyCode == 114 || window.event.keyCode == 116 || window.event.keyCode == 117 || window.event.keyCode == 122))
{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.
{return false;}
else
{
if (document.activeElement.getAttribute('type')=='sel ect-one') //Evita Back en select.
{return false;}
if (document.activeElement.getAttribute('type')=='but ton') //Evita Back en button.
{return false;}
if (document.activeElement.getAttribute('type')=='rad io') //Evita Back en radio.
{return false;}
if (document.activeElement.getAttribute('type')=='che ckbox') //Evita Back en checkbox.
{return false;}
if (document.activeElement.getAttribute('type')=='fil e') //Evita Back en file.
{return false;}
if (document.activeElement.getAttribute('type')=='res et') //Evita Back en reset.
{return false;}
if (document.activeElement.getAttribute('type')=='sub mit') //Evita Back en submit.
{return false;}
else //Text, textarea o password
{
if (document.activeElement.value.length==0)
{return false;} //No realiza el backspace(largo igual a 0).
else
{document.activeElement.value.keyCode = 8;} //Realiza el backspace.
}
}
}
}
Pero funciona para IE ya que utiliza el window.event.keyCode. Investigando encontré información que me indica que debería de hacer algo como

Cita:
variable = (document.all) ? e.keyCode : e.which;
pero resulta que probé reemplazando por todos los windowevent.keyCode y no logró que funcione ni para IE ni para FF. Sólo cuando regreso al código original es que logro que funciona para IE pero evidentemente no para FF.

¿Que debo cambiar en este código para que funcione tanto para IE como para FF?.

Gracias por el apoyo, en verdad no ato ni desato.

Un saludo desde el Perú
  #2 (permalink)  
Antiguo 25/09/2011, 17:08
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Bloqueo de teclas para IE y FF

es inútil desactivar o inhibir el comportamiento del teclado en un navegador, dicha técnica se emplea para enmascarar campos de tipo numérico pero no requiere inhabilitar teclas del sistema.

además no todos los navegadores te permitirán ello.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 25/09/2011, 19:59
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 2 meses
Puntos: 10
Respuesta: Bloqueo de teclas para IE y FF

Gracias por tu respuesta. Pueda que la consideres inútil, pero es lo que tengo que hacer por encargo del cliente. De momento sólo me importa que funcione para IE y FF. ¿Tienes alguna sugerencia que compartir para lograrlo?.

Gracias

Etiquetas: bloqueo, funcion, teclas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:11.