1

Ctrl+ Left/ Ctrl+を GreaseMonkey スクリプトでホットキーとして使用Rightして、ページを戻したり進めたりしています。正常に動作しているように見えますが、テキスト編集領域にいる場合はこの動作を無効にしたいと考えています。document.activeElement を使用してページのアクティブな要素を取得し、それが編集可能な領域かどうかをテストしようとしていますが、常に「未定義」が返されます。

4

2 に答える 2

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

})();
于 2008-09-03T23:18:44.747 に答える
0

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

于 2009-01-03T21:59:38.327 に答える