C# 在C中等待使用Gecko FX加载页面#
以下是我所使用的代码,我对此表示关注:C# 在C中等待使用Gecko FX加载页面#,c#,gecko,C#,Gecko,以下是我所使用的代码,我对此表示关注: void GoWebBrowser(string url) { if (String.IsNullOrEmpty(url)) return; if (url.Equals("about:blank")) return; GeckoPreferences.User["places.history.enabled"] = false; GeckoPr
void GoWebBrowser(string url)
{
if (String.IsNullOrEmpty(url)) return;
if (url.Equals("about:blank")) return;
GeckoPreferences.User["places.history.enabled"] = false;
GeckoPreferences.User["security.warn_viewing_mixed"] = false;
GeckoPreferences.User["plugin.state.flash"] = true;
GeckoPreferences.User["browser.cache.disk.enable"] = true;
GeckoPreferences.User["browser.cache.memory.enable"] = true;
GeckoPreferences.User["dom.max_script_run_time"] = 0; //let js run as long as it needs to; prevents timeout errors
GeckoPreferences.User["browser.download.manager.showAlertOnComplete"] = false;
GeckoPreferences.User["privacy.popups.showBrowserMessage"] = true;
GeckoPreferences.User["browser.xul.error_pages.enabled"] = true;
GeckoPreferences.User["view_source.editor.external"] = true;
GeckoPreferences.User["browser.frames.enabled"] = true;
GeckoPreferences.User["browser.sessionhistory.cache_subframes"] = true;
GeckoPreferences.Default["extensions.blocklist.enabled"] = false;
GeckoPreferences.User["general.useragent.override"] = "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0";
GeckoPreferences.Default["dom.ipc.plugins.enabled.npswf32.dll"] = true;
GeckoPreferences.Default["config.use_system_prefs"] = true;
Gecko.CertOverrideService.GetService().ValidityOverride += geckoWebBrowser1_ValidityOverride;
wb.DocumentCompleted += wbBrowser_DocumentCompleted;
wb.NoDefaultContextMenu = true;
wb.Dock = DockStyle.Fill;
wb.Navigate(url);
wb.DocumentCompleted += wbBrowser_DocumentCompleted;
}
void wbBrowser_DocumentCompleted(object sender, Gecko.Events.GeckoDocumentCompletedEventArgs e)
{
while ( wb.IsBusy)
{
Application.DoEvents();
System.Threading.Thread.Sleep(1);
}
if (e.Uri.AbsolutePath != (sender as GeckoWebBrowser).Url.AbsolutePath)
return;
}
wb.documentcomplete不会等待我的网页完成加载。
wb不允许我访问readystate,我只有readystatechange
提前感谢您的回复现代网页只有在文档完成事件后很久才会完全加载。JavaScript之类的东西可以异步加载,甚至一旦加载,页面“准备好”供用户输入也可能需要几秒钟。我看到的一种方法是在一些javascript中设置一个标志,以某种方式保证最后运行,然后主机检查该标志