1

我在 GreaseMonkey 脚本中使用Ctrl+ Left/ Ctrl+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 回答