Ir a la página de inicio de sesión de Twitter y escriba lo siguiente en la consola:¿Por qué console.log es una función vacía en algunos sitios en Chrome?
window.addEventListener('keypress', function(e){console.log('hello')}, true)
(NOTA:. Cómo el tercer parámetro se establece en true
que permite la captura de eventos Esto hace que los eventos a ser interceptados por primera vez por la ventana antes de ser consumido por un elemento hijo.)
Intenta presionar algunas teclas. Observe cómo hello
no se envía a la consola. Agregar un detector de eventos para keydown
o keyup
no cambia nada.
hello
obtendrá resultados en la mayoría de los sitios web, pero no en sitios como Twitter o Gmail.
¿Por qué? ¿Qué está deteniendo al oyente del evento?
EDITAR: Parece que funciona como se esperaba en Firefox. Pero no Chrome. ¿Por qué Chrome no activa el detector de eventos como se esperaba?
EDIT 2: Según lo deducen algunas personas a continuación, console.log
es una función vacía en Chrome para sitios como Twitter y Gmail. ¿Porqué es eso?
¿No deberías añadirlo a '' document' en lugar de ventana ¿? – Bergi
Probablemente estén cancelando el evento usando 'keydown' para algunas teclas. – Shmiddty
¿Por qué? (Y eso aún no resuelve el problema.) – Matm