Как я могу отключить горячую клавишу в GreaseMonkey во время редактирования?

StackOverflow https://stackoverflow.com/questions/42774

  •  09-06-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

})();

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top