captcha 입력 필드에 포커스를 자동으로 부여하는 Greasemonkey 스크립트를 작성하려고합니다. this example과 같이 captcha 양식을 동적으로 삽입하는 경우를 제외하고는 제대로 작동합니다. DOMNodeInserted에 대한 이벤트 리스너를 만드는 것이이 사건을 처리하기로되어 있다고 생각했습니다. (Firefox 17b에서 테스트 중입니다.)Greasemonkey 스크립트가 동적으로 삽입 된 위젯에 대해 작동하지 않습니다.
// ==UserScript==
// @name Focus captcha field
// @description Adds focus on captcha fields
// ==/UserScript==
function focusCaptcha (elem) {
var ids = ['recaptcha_response_field', 'adcopy_response', 'captcha_input'];
for (var i = ids.length - 1; i >= 0; i--) {
var input = elem.getElementById(ids[i]);
if (input) {
input.focus();
input.value = '';
return;
}
}
}
(function() {
focusCaptcha(document);
})();
document.addEventListener('DOMNodeInserted', function(event) {
focusCaptcha(event.target);
}, false);
MutationObservers를보고있는 Afert는 간단하고 많은 코드가 아닙니다. 그리고 범죄는 없지만 요령있는 스크립트에 의존하는 것에 조심 스럽습니다. – fipps
요령 스크립트 코드는 완벽하게 볼 수 있으며 복잡하지 않습니다. 위험이 없다는 것을 쉽게 알 수 있습니다. 변경 될 수 있다고 염려되는 경우 원본을 스크립트에 붙여 넣거나 직접 제어 할 자유형 포크를 만듭니다. –