Как я могу отключить горячую клавишу в GreaseMonkey во время редактирования?
-
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.
Не связан с StackOverflow