首页 文章

如何拦截GeckoFx连接错误

提问于
浏览
2

有没有办法拦截客户端的连接问题?

我的意思是如果用户失去连接并尝试访问网站,GeckoFx / Xulrunner会显示一条消息“无法找到[url] . 请检查名称然后重试 . ”在警报式消息框上 .

例如,是否可以更改该消息或拦截它以对其进行处理并显示错误页面?

Found out the solution: 经过更多测试并在geckofx中寻求帮助之后,我看到这条线丢失了:

GeckoWebBrowser.UseCustomPrompt();

此行和PromptServiceCreator的委托分配必须在Xpcom.Initialize方法之前设置 . 这是我花了很长时间才发现的部分,因为我的Initialize方法在另一个类中 .

1 回答

  • 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.";
    };
    

相关问题