2008-09-03 11 views
1

私は戻る/進むページをめくるためにホットキーとしてのGreaseMonkeyスクリプトではCtrl +/はCtrl +を使用しています。それはうまくいくようですが、テキスト編集エリアにいる場合はこの動作を無効にします。私はdocument.activeElementを使ってページアクティブ要素を取得し、それが編集可能な領域かどうかをテストしようとしていますが、常に "undefined"を返します。編集中にGreaseMonkeyのホットキーを無効にする方法はありますか?

答えて

2

document.activeElementはFF3に私のために動作しますが、次も

(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

拡張機能がFF3で動作するまでFF 2.0.0.16を使用しています。 activeElementがFF2では動作しないようですが、フォーカス/ブラーイベントがトリックを行いました。ありがとう – PabloG

0

element.activeElementは、HTML5の仕様の一部ですが、ほとんどのブラウザでサポートされていません動作します。それはIEによって最初に導入されました。

関連する問題