我正在使用 CEFsharp 浏览器,并通过 LoadingStateChanged 事件确定页面完成加载,但它会触发多次。
我只需要在页面完全加载后才触发它,该怎么办?
private async void Browser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e)
{
if (!e.Browser.IsLoading)
{
await Task.Run(async () =>
{
await Task.Delay(3000);
});
try
{
MessageBox.Show("Page has been loaded");
}
catch (Exception ex)
{
}
}
}
如今,这真的很简单。例如,将这两行代码放入您的 Form_Load 中:
browser = new ChromiumWebBrowser();
(browser).FrameLoadEnd += Browser_FrameLoadEnd;
然后添加所需的方法:
async void Browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
{ // Jumps in here when the page is fully loaded:
if (e.Frame.IsMain)
{
if (e.Url.Contains("whatever you need"))
{
// Call a methode or something else.
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)