Wie kann ich während der Bearbeitung einen Hotkey in GreaseMonkey deaktivieren?

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

  •  09-06-2019
  •  | 
  •  

Frage

Ich benutze Strg+Links / Strg+Rechts in einem GreaseMonkey-Skript als Hotkey zum Vor- und Zurückblättern von Seiten.Es scheint gut zu funktionieren, aber ich möchte dieses Verhalten deaktivieren, wenn ich mich in einem Textbearbeitungsbereich befinde.Ich versuche, document.activeElement zu verwenden, um das aktive Element der Seite abzurufen und zu testen, ob es sich um einen bearbeitbaren Bereich handelt, aber es gibt immer „undefiniert“ zurück.

War es hilfreich?

Lösung

document.activeElement funktioniert bei mir in FF3, aber das Folgende funktioniert auch

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

})();

Andere Tipps

element.activeElement ist Teil der HTML5-Spezifikation, wird aber von den meisten Browsern nicht unterstützt.Es wurde zuerst von IE eingeführt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top