2008-09-03 7 views
1

나는 뒤로/앞으로 페이지를 설정하는 단축키로 Greasemonkey와 스크립트에 Ctrl 키 + 왼쪽/Ctrl 키 + 오른쪽을 사용하고 있습니다. 그것은 잘 작동하는 것,하지만 텍스트 편집 영역에있는 경우이 동작을 해제하려면 싶습니다. document.activeElement를 사용하여 페이지 활성 요소를 가져오고 편집 가능한 영역인지 테스트하려고하지만 항상 "정의되지 않음"을 반환합니다.편집하는 동안 GreaseMonkey의 핫키를 비활성화하려면 어떻게합니까?

답변

2

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

내 확장 프로그램이 FF3에서 실행될 때까지 FF 2.0.0.16을 사용하고 있습니다. activeElement는 FF2에서는 작동하지 않지만 focus/blur 이벤트는 트릭을 수행했습니다. 감사합니다. – PabloG

0

element.activeElement는 HTML5 사양의 일부하지만 대부분의 브라우저에서 지원되지 않습니다 작동합니다. IE에서 처음 소개되었습니다.