Foros del Web » Programando para Internet » Javascript »

Chrome. Un verdadero dolor de cabeza al solo capturar teclas.

Estas en el tema de Chrome. Un verdadero dolor de cabeza al solo capturar teclas. en el foro de Javascript en Foros del Web. Señores, Estuve buscando por internet (Inclusive paginas en inglés) pero no encuentro lo que necesito. Miren, lo que ocurre es que quiero deshabilitar la tecla ...
  #1 (permalink)  
Antiguo 21/09/2010, 22:10
Avatar de Celcius  
Fecha de Ingreso: febrero-2003
Ubicación: Lima - Perú
Mensajes: 652
Antigüedad: 21 años, 2 meses
Puntos: 5
Pregunta Chrome. Un verdadero dolor de cabeza al solo capturar teclas.

Señores,
Estuve buscando por internet (Inclusive paginas en inglés) pero no encuentro lo que necesito. Miren, lo que ocurre es que quiero deshabilitar la tecla F5. Mi cliente solo va a usar Chrome, no va a usar IE ni ningun otro navegador, pero se me ha complicado la tarea de deshabilitar. ¿Qué sugerencia me pueden dar ustedes? miren aquí les pego un codigo que no me funciona a ver que opinan:

Código PHP:
document.onkeypress my_onkeydown_handler();

function 
my_onkeydown_handler() {
    switch (
event.keyCode) {
        case 
116 // 'F5'
            
event.returnValue false;
            
event.keyCode 0;
            
window.status "We have disabled F5";
            break;
    }

La verdad no he encontrado mucha info en internet sobre el uso de Javascript en Chrome.
__________________
"Si tú conocieras el don de Dios, y quién es el que te dice: 'Dame de beber,' tú Le habrías pedido a El, y El te hubiera dado agua viva.
Sn. Juan 4:19
Jesus
  #2 (permalink)  
Antiguo 21/09/2010, 22:59
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Chrome. Un verdadero dolor de cabeza al solo capturar teclas.

Intenta poniendo en tu javascript asi:

Código Javascript:
Ver original
  1. document.onkeydown = function(){
  2.     if (window.event && window.event.keyCode == 116) return false;
  3. }

Suerte
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 21/09/2010, 23:04
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Chrome. Un verdadero dolor de cabeza al solo capturar teclas.

@masterojitos,
window.event solamente existe en iexplorer.

@celcius,
returnValue tambien es para iexplorer. en lugar de returnValue, invoca el metodo preventDefault.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 21/09/2010, 23:09
Avatar de Celcius  
Fecha de Ingreso: febrero-2003
Ubicación: Lima - Perú
Mensajes: 652
Antigüedad: 21 años, 2 meses
Puntos: 5
Respuesta: Chrome. Un verdadero dolor de cabeza al solo capturar teclas.

Hola, hice como me dijiste, pero no ha funcionado... :(


Código Javascript:
Ver original
  1. function my_onkeydown_handler() {
  2.     switch (event.keyCode) {
  3.         case 116 : // 'F5'
  4.             event.preventDefault = false;
  5.             event.keyCode = 0;
  6.             window.status = "We have disabled F5";
  7.             break;
  8.     }
  9. }
__________________
"Si tú conocieras el don de Dios, y quién es el que te dice: 'Dame de beber,' tú Le habrías pedido a El, y El te hubiera dado agua viva.
Sn. Juan 4:19
Jesus
  #5 (permalink)  
Antiguo 21/09/2010, 23:15
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Chrome. Un verdadero dolor de cabeza al solo capturar teclas.

dije invocar metodo... no dije asignar valor false.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 21/09/2010, 23:17
Avatar de Celcius  
Fecha de Ingreso: febrero-2003
Ubicación: Lima - Perú
Mensajes: 652
Antigüedad: 21 años, 2 meses
Puntos: 5
Respuesta: Chrome. Un verdadero dolor de cabeza al solo capturar teclas.

gracias por tu ayuda :)
__________________
"Si tú conocieras el don de Dios, y quién es el que te dice: 'Dame de beber,' tú Le habrías pedido a El, y El te hubiera dado agua viva.
Sn. Juan 4:19
Jesus
  #7 (permalink)  
Antiguo 21/09/2010, 23:23
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Chrome. Un verdadero dolor de cabeza al solo capturar teclas.

mmmmm

entonces asi ??

Código Javascript:
Ver original
  1. document.onkeydown = function(){
  2.     if (event.keyCode == 116) event.preventDefault();
  3. }
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #8 (permalink)  
Antiguo 21/09/2010, 23:27
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Chrome. Un verdadero dolor de cabeza al solo capturar teclas.

@masterojitos,
es correcto... pero siempre y cuando la funcion sea asignada como un handler de un evento. o sea, a traves de propiedades de javascript o registrando el evento con addEventListener. si lo invocas como atributo html, entonces tendrias que pasar como parametro el objeto event a la funcion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 21/09/2010 a las 23:42
  #9 (permalink)  
Antiguo 22/09/2010, 00:02
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Chrome. Un verdadero dolor de cabeza al solo capturar teclas.

asi ??
Código Javascript:
Ver original
  1. document.onkeydown = function(e){
  2.     if (e.keyCode == 116) e.preventDefault();
  3. }

Cita:
pero siempre y cuando la funcion sea asignada como un handler de un evento. o sea, a traves de propiedades de javascript o registrando el evento con addEventListener.
Esa parte no la entendi :S
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #10 (permalink)  
Antiguo 22/09/2010, 10:25
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Chrome. Un verdadero dolor de cabeza al solo capturar teclas.

@masterojitos,
los dos codigos anteriores son practicamente los mismos. en el modelo estandar de DOM Event, el listener o handler -la funcion que captura el evento- recibe un parametro: el objeto event. inclusive si nuestra funcion no le indicamos argumentos aun asi recibe el objeto. si es este ultimo caso, el objeto se puede referenciar de dos formas: por el array arguments, o por el nombre event. este nombre automaticamente se lo asigna el navegador. fijate que no dice window.event, porque ya en este caso se refiere a una propiedad en el ambito global.

al comentario anterior me referia a lo siguiente.
Código:
function fn(){
alert("params: "+arguments.length+"\n"+arguments[0]);
}

// handler asignado por propiedades javascript;
self.onclick = fn;

// handler registrado con funciones del DOM;
self.addEventListener('click', fn, false);

// handler declarado como atributo html;
<body onclick="alert('length: 'arguments.length+'\nobject: '+arguments[0]); fn(arguments[0]);">...</body>
prestale gran atencion al ultimo ejemplo. pareceria dificil de entender por que arguments existe dentro de los eventos como atributos html. simple, los eventos son funciones. en html, aunque estas declarando un atributo, a nivel javascript estas creando una funcion. por tanto, si invocaras la funcion fn sin pasar la referencia del objeto event en el atributo onclick de body, entonces te produce error. a eso me referia con la cita anterior: mientras el evento sea declarado por javascript no vas a tener problema; si lo declaras como atributo asegurarse de pasar como parametro el objeto event.

aclaro que este concepto solamente existe en navegadores que siguen el estandar DOM Event.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 02/12/2011, 16:29
 
Fecha de Ingreso: junio-2006
Mensajes: 4
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Chrome. Un verdadero dolor de cabeza al solo capturar teclas.

Código:
function impideletras(e){

                if(e){
                    if(e.keyCode<48 || e.keyCode>57){
                        e.preventDefault();
                    }
                }
                if(window.event){
                    if(window.event.keyCode<48 || window.event.keyCode>57){
                        window.event.keyCode=0;
                    }
                }
            }
probado en IE y Chrome

Etiquetas: chrome, 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 19:42.