2012-05-11 6 views
4

비슷한 문제가 많이 있지만 똑같고 올바른 해결책이 없습니다. 이것은 매우 이상한 문제입니다.setTimeout이 Greasemonkey에서 항상 작동하지 않는 경우

// ==UserScript== 
// @name  testdiddio 
// @namespace http://userscripts.org/users/useridnumber 
// @include  https://www.google.it/ 
// @version  1 
// ==/UserScript== 


function wait(){ 
    console.info("wait"); 
    setTimeout(wait,1000); 
} 

console.info("start"); 
wait(); 

이는 방화로부터 출력된다 : 대기() 함수는 다음 4 번 호출 중단된다

start 
wait 
wait 
wait 
wait 

나는 문제를 테스트하는 간단한 그리스 몽키 스크립트를 갖는다. 타임 아웃을 100ms로 설정하면 콜은 적어도 10/15 초 동안 작동 한 다음 중지됩니다.

내가 사용 : 파이어 폭스 12.0 그리스 몽키 0.9.19

+0

아마도 웹 페이지가 완전히로드 될 때 Greasemonkey 스크립트가 실행을 중지하기 때문에? – JoP

답변

6

이것은 그리스 몽키 0.9.19의 버그입니다.
페이지의 JS가 비활성화되어 있고 일부 합병증 (문제 1549, 15521553 등)이 도입 된 경우에도 setTimeout()이 작동하도록하는 기능이 추가되었습니다.

곧 릴리스 0.9.20에서 해결되거나 버전 0.9.18로 되돌아 가야합니다.

+0

감사합니다. 버전 0.9.18을 설치했는데 모든 것이 정상입니다. 너는 내 하루를 구했다. – JoP

+0

안녕하세요. 기꺼이 도와주세요. –

+0

0.9.20으로 나에게도 일어난 것처럼 보였습니다. 0.9.18로 되돌아갔습니다. 문제가 해결 된 것 같습니다. 질문이 있으면 테스트 해보기 위해 무언가를 시도해도 행복 할 것입니다 (예 : 0.9.20가 실제로 문제를 해결하도록 지원 된 경우). –

관련 문제