2008-09-03 42 views
1

我使用按Ctrl +/按Ctrl +右鍵一個的GreaseMonkey腳本熱鍵打開前進/後退的頁面。它似乎工作正常,但我想要禁用此行爲,如果我在文本編輯區域。我試圖使用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

我使用FF 2.0.0.16,直到我的擴展在FF3中運行。它看起來像activeElement不起作用的FF2,但焦點/模糊事件做了伎倆,謝謝 – PabloG 2008-09-04 02:55:05

0

element.activeElement是HTML5規範的一部分,但不被大多數瀏覽器都支持。它是由IE首次推出的。