문제

Xulrunner 앱과 같은 Mozilla Prism이 있다고 가정합니다. a가있는 xul 창이 있습니다u003Cbrowser/> 브라우저가 주어진 도메인의 웹 페이지를 표시하는 요소 (예 : example.com).

이제 example.com에 몇 가지 링크가 있습니다. 사용자가 로컬 링크 (즉, example.com에 머무는 경우)를 따르는 경우 따라야합니다. 반면에 링크가 elpmaxe.moc로 이동한다면, 그 두 가지 가능성 중 하나가 있어야합니다.

  • "실제"브라우저가 열립니다 (프리즘에서와 같이)
  • 아무 반응이 없습니다.

이것을하는 아이디어가 있습니까? Browser.Document.Onload.Onload 또는 DOMREADY 또는 해당 이벤트를 사용하는 것만으로는 충분하지 않습니다. 링크는 페이지로드 중에도 안전하게 차단되어야하므로 (예 : 아직 이벤트 중 어느 것도 아직 해고되지 않은 경우).

도움이 되었습니까?

해결책

당신은 당신이 제공 한 것과 유사한 기능을 원한 것 같습니다. 블록 사이트 - 앱의 도메인을 화이트리스트하고 다른 모든 것을 차단하려는 것을 제외하고. MDC 문서가 있습니다 XUL 러너 내에 확장자 설치 도움이 될 수 있습니다.

또는 소스 코드를 살펴보고 연결하는 위치를 알아 내고 해결할 수 있습니다.이를 통해 대체 동작을 구현하고 앱으로 확장을 배송하지 않도록 할 수 있습니다. 제 생각에는 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 함수는 바로 위의 코드에 정의되어 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top