¿Cómo puedo desactivar una tecla de acceso directo en GreaseMonkey, mientras que la edición?

StackOverflow https://stackoverflow.com/questions/42774

  •  09-06-2019
  •  | 
  •  

Pregunta

Estoy usando Ctrl+A la izquierda / Ctrl+Derecho en un script de GreaseMonkey como un atajo de teclado para activar atrás / adelante páginas.Parece que funciona bien, pero quiero deshabilitar este comportamiento si estoy en una edición de texto de área.Estoy tratando de utilizar el documento.activeElement para conseguir que la página elemento activo y prueba si se trata de un área editable, pero siempre devuelve "undefined".

¿Fue útil?

Solución

documento.activeElement me funciona en FF3, pero el siguiente también funciona

(function() {

var myActiveElement;
document.onkeypress = function(event) {
    if ((myActiveElement || document.activeElement || {}).tagName != 'INPUT')
        // do your magic
};
if (!document.activeElement) {
    var elements = document.getElementsByTagName('input');
    for(var i=0; i<elements.length; i++) {
        elements[i].addEventListener('focus',function() {
            myActiveElement = this;
        },false);
        elements[i].addEventListener('blur',function() {
            myActiveElement = null;
        },false);
    }
}

})();

Otros consejos

elemento.activeElement es parte de la especificación HTML5 pero no es compatible con la mayoría de los navegadores.Se introdujo por primera vez por el IE.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top