2013-11-20 1 views
10

나는 숨겨진 브라우저 요소를 여러 개 생성하는 Firefox 확장 기능을 구축 중입니다.Firefox onLocationChange가 항상 부름되지 않는다

내가로드하는 페이지에 대해 onLocationChange를 처리하려면 addProgressListener() 싶습니다. 그러나 내 처리기가 항상 호출되지는 않습니다. 받는 사람 onLocationChange 대기를 진행 리스너를 추가의 src 속성을 설정하지 않고,

  1. 브라우저 요소를 작성
  2. 다른 요소
  3. 에 첨부 :

    은보다 구체적으로, 여기에 내가 뭘하는지입니다 브라우저 요소

  4. 원하는 url 및 post 데이터가있는 loadURIWithFlags()을 호출하십시오.

나는 핸들러가 4 후에 매번 호출되기를 기대하지만 때로는 그렇지 않다 (같은 페이지에 붙어있는 것처럼 보인다).

흥미롭게도 3과 4를 setTimeout(..., 5000); 안에 넣으면 매번 작동합니다.

나는 몇 가지 단계를 시도해 봤지만 아무런 효과가 없었습니다.

큰 그림 : 브라우저의 contentDocument이 새로로드 된 페이지의 페이지 (리디렉션 후) 일 때 나는 안정적으로 통보하고 싶습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?

업데이트는 : 내 경험에 https://bugzilla.mozilla.org/show_bug.cgi?id=941414

+0

우리는 몇 가지 코드/바이올린을 얻을 수 있습니까? 리스너를 어떻게 설정합니까? – Cracker0dks

+0

@ Cracker0dks 버그에 첨부 된 최소 xulrunner 앱이 있습니다. https://bugzilla.mozilla.org/show_bug.cgi?id=941414 –

+0

이 템플릿은 축소 된 테스트 케이스라는 것을 알고 있지만, 성취하려는 것은 무엇입니까? 왜 단순한로드 리스너 대신 onLocationChange를 사용합니까?