Как отключить горячую клавишу в GreaseMonkey во время редактирования? - PullRequest
1 голос
/ 04 сентября 2008

Я использую Ctrl + Влево / Ctrl + Вправо в скрипте GreaseMonkey в качестве горячей клавиши для переключения назад / вперед страницы. Кажется, работает нормально, но я хочу отключить это поведение, если я нахожусь в области редактирования текста. Я пытаюсь использовать document.activeElement, чтобы получить активный элемент страницы и проверить, является ли это редактируемой областью, но она всегда возвращает «неопределенное».

Ответы [ 2 ]

2 голосов
/ 04 сентября 2008

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 голосов
/ 04 января 2009

element.activeElement является частью спецификации HTML5, но не поддерживается большинством браузеров. Впервые он был представлен IE.

...