我测试我的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
}
然而,它似乎仍然无效。我做错了什么,或者这在语法上是否正确?我的代码中还有其他错误?
答案 0 :(得分:7)
我用这个(从SO的回答到类似的问题):
void BrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath)
return;
//The page has finished loading.
}
答案 1 :(得分:5)
DocumentComplete
可能会被多次触发。同时,对于特定文档,window.onload
事件将仅被触发一次。所以,也许,你可以在window.onload
上进行处理。我刚回答related question如何做到这一点。
答案 2 :(得分:1)
只需检查e.Url.AbsolutePath是您导航到的实际网址。
if(e.Url.AbsolutePath == TheActualURLString) { //这是您的实际页面下载完成 }