Estoy escribiendo un script de tampermonkey que quiero realizar una acción cuando se presiona un determinado conjunto de teclas (cmd + alt + t). Veo un problema en el que el código deja de ejecutarse por completo después de hacer clic en cualquier lugar de la página y tengo que actualizar o hacer clic en un lugar determinado de la página (barra de búsqueda en CloudWatch) para que vuelva a funcionar.
Aquí está mi código:
(async function() { var set = new Set(); function funcA() { console.log('funcA'); } function funcB() { console.log('funcB'); if (set.has(91) && set.has(18) && set.has(84)) { // cmd + alt + t funcA(); } } function onKeyUp(e) { console.log('onKeyUp'); set.clear(); console.log(new Array(...set).join(' ')); } function onKeyDown(e) { console.log('onKeyDown'); set.add(e.which); console.log(new Array(...set).join(' ')); funcB(); } function init() { console.log('init'); console.log('Adding event listeners.'); document.addEventListener('keyup', onKeyUp); document.addEventListener('keydown', onKeyDown); } if( document.readyState !== 'loading' ) { console.log( 'not loading' ); init(); } else { document.addEventListener('DOMContentLoaded', init); } })();El problema solo parece ocurrir en ciertas páginas, por ejemplo, en los registros de AWS CloudWatch.
¿Algunas ideas?