Como posso desabilitar uma tecla de atalho no GreaseMonkey durante a edição?

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

  •  09-06-2019
  •  | 
  •  

Pergunta

estou a usar Ctrl+Esquerda / Ctrl+Certo em um script GreaseMonkey como uma tecla de atalho para voltar/avançar páginas.Parece funcionar bem, mas quero desabilitar esse comportamento se estiver em uma área de edição de texto.Estou tentando usar document.activeElement para pegar o elemento ativo da página e testar se é uma área editável, mas sempre retorna "indefinido".

Foi útil?

Solução

document.activeElement funciona para mim no FF3, mas o seguinte também 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);
    }
}

})();

Outras dicas

element.activeElement faz parte das especificações HTML5, mas não é compatível com a maioria dos navegadores.Foi introduzido pela primeira vez pelo IE.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top