2013-12-16 5 views
2

클라이언트 쪽에서 연결 문제를 가로채는 방법이 있습니까?GeckoFx 연결 오류를 차단하는 방법

사용자가 연결을 잃어서 웹 사이트에 액세스하려고 시도하면 GeckoFx/Xulrunner에 "[url]을 (를) 찾을 수 없습니다."라는 메시지가 표시됩니다. 이름을 확인한 후 다시 시도하십시오. " 경고 - 스타일 메시지 상자에.

해당 메시지를 변경하거나 메시지를 가로 채어 처리하고 오류 페이지를 표시 할 수 있습니까?

이 솔루션을 찾았습니다) (

GeckoWebBrowser.UseCustomPrompt을; 더 많은 테스트 후와 geckofx에 도움을 요청,이 라인이없는 것을보고

PromptServiceCreator에 대한이 줄과 대리인 지정은 모두 Xpcom.Initialize 메서드보다 먼저 설정해야합니다. 그것은 내 Initialize 메서드가 다른 클래스에 있었기 때문에 너무 오래 걸리는 부분이었습니다.

+1

나는이 도움이 것을 발견했습니다 'GeckoPreferences.User [ "browser.xul.error_pages. enabled "] = true;' 그런 다음 탐색 이벤트에서"IsErrorPage "를 확인할 수 있습니다. 하지만 그 문서 내용을 대체 할 수없는 것 같습니다. 그래서 문제는 지속됩니다. – pca1987

답변

0

"browser.xul.error_pages.enabled"를 비활성화 (false)로 설정하면 자신의 PromptService를 작성할 수 있습니다. 프로그램 시작 초기에 그런

class MyPromptService : nsIPromptService2, nsIPrompt { .... } 

:

먼저 자신의 신속한 서비스를 구현

PromptFactory.PromptServiceCreator =() => new MyPromptService(); 

모든 당신이 모든 경고와 함께하고 싶은 일을하는 것입니다.

그 다음 작동하지 않는 경우, 당신은 언제나 수정할 수있는 문서의 내용 :

browser.DocumentCompleted += (s, e) => 
{ 
    if (!sometest) 
     return; 

    GeckoHtmlElement g = (GeckoHtmlElement)browser.Document.DocumentElement; 
    g.InnerHtml = "what ever you want."; 
}; 
+0

시간 내 주셔서 감사합니다. 나는 이것을 시도하고 MyPromptService의 모든 메소드에 중단 점을 배치하려고 시도했으며 작동하지 않는 것처럼 보입니다. 어떤 아이디어? (나는 거기에 예외를 구현하지 않았고 아무 것도 시작하지 않았다). 오류 페이지 속성을 비활성화했으며 'PromptFactory.PromptServiceCreator =() => new MyPromptService();'클래스의 새 인스턴스를 만들었습니다. 추신 : http://10.0.0.77과 같은 존재하지 않는 IP로 이동하려고하는 오류를 재현합니다. – pca1987

+0

업데이트 됨 - (모든 오류에 대해 PromptService가 호출되지 않음) – Tom