Como posso desabilitar uma tecla de atalho no GreaseMonkey durante a edição?
-
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".
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