편집하는 동안 GreaseMonkey의 단축키를 비활성화하려면 어떻게 해야 합니까?

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

  •  09-06-2019
  •  | 
  •  

문제

나는 사용하고있다 Ctrl 키+왼쪽 / Ctrl 키+오른쪽 GreaseMonkey 스크립트에서 페이지를 뒤로/앞으로 전환하는 단축키로 사용됩니다.제대로 작동하는 것 같지만 텍스트 편집 영역에 있는 경우 이 동작을 비활성화하고 싶습니다.document.activeElement를 사용하여 페이지 활성 요소를 가져오고 편집 가능한 영역인지 테스트하려고 하는데 항상 "정의되지 않음"을 반환합니다.

도움이 되었습니까?

해결책

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