2009-06-24 4 views
2

XULRunner 응용 프로그램과 같은 Mozilla 프리즘이 있다고 가정합니다. < browser /> 요소가있는 XUL 창이 있습니다. 여기서 브라우저는 지정된 도메인 (예 : example.com)의 웹 페이지를 표시합니다.XULRunner : 임의의 도메인에 대한 링크 금지

이제 example.com에 여러 링크가 있습니다. 사용자가 로컬 링크를 따르는 경우 (예 : example.com에 머무르는 경우) 따라야합니다. 반면에 링크가 elpmaxe.moc 간다 경우, (난 상관 없어) 그 두 가지 가능성 중 하나가 있어야합니다 :

"진짜"브라우저 (단지 프리즘처럼) 열립니다
  • , 또는
  • 아무 일도 발생하지 않습니다.

아이디어가 필요합니까? browser.document.onload 또는 DOMready 또는 이러한 이벤트를 사용하는 것으로는 충분하지 않습니다. 페이지로드 중에도 링크가 안전하게 차단되어야하므로 (즉, 이러한 이벤트가 아직 실행되지 않은 경우)

+0

흠, 가능한 (그러나 아직 검증되지 않은) 솔루션이 될 수있다 : browser.document.addEventListener 하지만 여전히 나도 몰라, 어떻게 결정 ("언로드", ...), 여행이 가고 에. – Boldewyn

답변

1

BlockSite과 비슷한 기능을 원한다면 - 앱의 도메인을 허용 목록에 추가하고 다른 모든 항목은 차단하고 싶을 것입니다. installing extensions within XUL Runner에 대한 MDC 문서가 있는데 도움이 될 것입니다.

다른 방법으로는 소스 코드를 살펴본 후 소스 코드를 살펴볼 수 있습니다.이 기능을 사용하면 응용 프로그램에서 확장 기능을 제공하는 대신 다른 동작을 구현할 수 있습니다. 나는 BlockSite.js이 키 파일 핸들러가 여기 (라인 171) 추가됩니다과 같은 생각 :

var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService); 
observerService.addObserver(BlockSiteObserver, "http-on-modify-request", false); 

BlockSiteObserver 기능이 바로 위의 코드에 정의되어 있습니다.

+0

쿨! 나를 가리켜 주셔서 감사합니다. 매우 유망 해 보입니다. 최대한 빨리 테스트 할 수 있습니다 (이번 주에 완료해야 함). 대답을 수락합니다. – Boldewyn

+0

그래, 관찰자는 내가 찾은 바로 그 것이다. 고맙습니다! – Boldewyn