【问题标题】:How can I disable a hotkey in GreaseMonkey while editing?如何在编辑时禁用 GreaseMonkey 中的热键?
【发布时间】:2012-08-12 01:59:10
【问题描述】:

我在 GreaseMonkey 脚本中使用 Ctrl+Left / Ctrl+Right 作为热键后退/前进页面。它似乎工作正常,但如果我在文本编辑区域中,我想禁用此行为。我正在尝试使用 document.activeElement 来获取页面活动元素并测试它是否是可编辑区域,但它总是返回“未定义”。

【问题讨论】:

    标签: firefox greasemonkey


    【解决方案1】:

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

    【讨论】:

    • 我使用的是 FF 2.0.0.16,直到我的扩展程序在 FF3 中运行。看起来 activeElement 在 FF2 中不起作用,但焦点/模糊事件起到了作用,谢谢
    【解决方案2】:

    element.activeElement 是 HTML5 规范的一部分,但大多数浏览器不支持。它首先由 IE 引入。

    【讨论】:

      猜你喜欢
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多