6

我测试我的 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    
}   

但是,它似乎仍然无法正常工作。我做错了什么,或者这在语法上是否正确并且我的代码中还有其他错误?

4

3 回答 3

8

我使用这个(从 SO 的答案到类似的问题):

void BrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath)
        return; 

    //The page has finished loading.
}
于 2015-09-24T12:13:04.620 回答
5

DocumentComplete由于多种原因(帧、ajax 等),可能会被多次触发。同时,对于一个特定的文档,window.onload事件只会被触发一次。所以,也许,你可以在window.onload. 我刚刚回答了一个有关如何做到这一点的相关问题。

于 2013-08-22T04:35:21.230 回答
1

只需检查 e.Url.AbsolutePath 是您导航到的实际 url。

if (e.Url.AbsolutePath == TheActualURLString) { //这是你的实际页面下载完成 }

于 2014-05-01T19:42:13.680 回答