DocumentCompleted多次激发-接受的StackOverflow回答不起作用
本文关键字:StackOverflow 不起作用 DocumentCompleted | 更新日期: 2023-09-27 18:28:24
我测试我的WebBrowser是否已完成:
webBrowser2.DocumentCompleted += (s, e) =>
{
// Do stuff
}
我访问的网页是大量的JS文件和iframe之类的东西,所以我使用下面的函数来确保它是完成加载的实际页面。
webBrowser2.DocumentCompleted += (s, e) =>
{
if (e.Url.AbsolutePath != (s as WebBrowser).Url.AbsolutePath)
{
return;
}
// Do stuff
}
然而,它似乎仍然不起作用。我是做错了什么,还是语法正确,而我的代码中还有其他错误?
我使用这个(从SO的答案到类似的问题):
void BrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath)
return;
//The page has finished loading.
}
DocumentComplete
可能由于多种原因(帧、ajax等)而被多次激发。同时,对于特定文档,window.onload
事件将只触发一次。因此,也许您可以在window.onload
上进行处理。我刚刚回答了一个关于如何做到这一点的相关问题。
只需检查e.Url.AbsolutionPath是您导航到的实际Url。
if(e.Url.AbsolutePath==实际URLString){//这是您的实际页面下载完成}