나는 뒤로/앞으로 페이지를 설정하는 단축키로 Greasemonkey와 스크립트에 Ctrl 키 + 왼쪽/Ctrl 키 + 오른쪽을 사용하고 있습니다. 그것은 잘 작동하는 것,하지만 텍스트 편집 영역에있는 경우이 동작을 해제하려면 싶습니다. document.activeElement를 사용하여 페이지 활성 요소를 가져오고 편집 가능한 영역인지 테스트하려고하지만 항상 "정의되지 않음"을 반환합니다.편집하는 동안 GreaseMonkey의 핫키를 비활성화하려면 어떻게합니까?
1
A
답변
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
element.activeElement는 HTML5 사양의 일부하지만 대부분의 브라우저에서 지원되지 않습니다 작동합니다. IE에서 처음 소개되었습니다.
내 확장 프로그램이 FF3에서 실행될 때까지 FF 2.0.0.16을 사용하고 있습니다. activeElement는 FF2에서는 작동하지 않지만 focus/blur 이벤트는 트릭을 수행했습니다. 감사합니다. – PabloG