【问题标题】:Gecko WebBrowser unable to open a specific link first time after Restart machineGecko WebBrowser 在重新启动机器后第一次无法打开特定链接
【发布时间】:2020-06-22 11:55:32
【问题描述】:

我是 C# 新手。我用 Gecko webBrowser 控件开发了自己的 webbrowser。但我第一次无法打开特定链接,它会返回超时警报。我也处理了超时警报消息框。 当我实现了

private void gWebBrowser_DocumentCompleted(object sender, Gecko.Events.GeckoDocumentCompletedEventArgs e)

我发现第一次页面没有正确加载。 如何在其中使用自动重新加载或计时器?

我的代码是:

 public partial class Embedded_Browser : Form 
{
    public Embedded_Browser()
    {
        string GeminiURL = "NA";
        InitializeComponent();
        Xpcom.Initialize("Firefox");
        GeckoPreferences.User["dom.max_script_run_time"] = 0; //let js run as long as it needs to; prevents timeout errors
        GeckoPreferences.User["security.warn_viewing_mixed"] = false;
        GeckoPreferences.User["browser.download.manager.showAlertOnComplete"] = false;
        GeckoPreferences.User["privacy.popups.showBrowserMessage"] = false;
        GeckoPreferences.User["browser.xul.error_pages.enabled"] = false;
        GeckoPreferences.User["browser.cache.memory.enable"] = false;
      
        gWebBrowser.NSSError += new EventHandler<GeckoNSSErrorEventArgs>(gWebBrowser_NSSError); //Bypass SSL certificate issues
        gWebBrowser.NavigationError += new EventHandler<GeckoNavigationErrorEventArgs>(gWebBrowser_NavigationError); //If there are any issues encountered during page loads
        gWebBrowser.Navigated += new EventHandler<GeckoNavigatedEventArgs>(gWebBrowser_Navigated); //React appropriately to URL navigation

        string sUserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.1) Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)";
        Gecko.GeckoPreferences.User["general.useragent.override"] = sUserAgent;

        var observerService = Xpcom.GetService<nsIObserverService>("@mozilla.org/observer-service;1");
        observerService.AddObserver(new Observer(), "http-on-modify-request", false);

        if (Environment.Is64BitOperatingSystem)
        {
            RegistryKey MyReg = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Wow6432Node\\Jekson\\AppConfig", true);
            GeminiURL = (string)MyReg.GetValue("Browse_URL", "NA");
        }
        else
        {
            RegistryKey MyReg = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Jekson\\AppConfig", true);
            GeminiURL = (string)MyReg.GetValue("Browse_URL", "NA");
         }
       

        gWebBrowser.Navigate(GeminiURL);
        textBox1.Text = GeminiURL;
        PromptFactory.PromptServiceCreator = () => new NoPromptService();
        //  System.Threading.Thread.Sleep(5000);
        if(NoPromptService.isPrompt == 1){
            gWebBrowser.Reload();
            gWebBrowser.Navigate(GeminiURL);
            MessageBox.Show("Hello!");
        }
     }

请帮助我。提前谢谢

【问题讨论】:

    标签: browser gecko


    【解决方案1】:

    我第一次使用计时器控件来使 Web 浏览器自动刷新。 5ms 后网络浏览器自动刷新一次。

    我的代码是:

    private void timer1_Tick(object sender, EventArgs e)
        {            
            gWebBrowser.Navigate("google.com");  //You can pass any url here which you want to load
            if (count == 0)
            {
                timer1.Enabled = false;
            }
            count++;
        }
    

    【讨论】:

      猜你喜欢
      • 2022-07-07
      • 2019-08-21
      • 1970-01-01
      • 2013-01-17
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 2016-12-22
      相关资源
      最近更新 更多