2008-09-03 13 views
1

J'utilise Ctrl +Gauche/Ctrl +droit dans un script Greasemonkey comme un raccourci clavier pour revenir en arrière/avant pages. Cela semble fonctionner correctement, mais je veux désactiver ce comportement si je suis dans une zone d'édition de texte. J'essaie d'utiliser document.activeElement pour obtenir l'élément actif de la page et tester si c'est une zone modifiable, mais il retourne toujours "indéfini".Comment désactiver un raccourci clavier dans GreaseMonkey lors de l'édition?

Répondre

2

document.activeElement travaille pour moi FF3 mais ce qui suit fonctionne aussi

(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); 
    } 
} 

})(); 
+0

J'utilise FF 2.0.0.16 jusqu'à ce que mes extensions soient exécutées en FF3. Il semble que activeElement ne fonctionne pas dans FF2, mais les événements focus/blur ont fait l'affaire, merci – PabloG

0

element.activeElement fait partie de spécifications HTML5, mais ne sont pas pris en charge par la plupart des navigateurs. Il a été introduit par IE.

Questions connexes