c# - DocumentCompleted 多次触发 - 接受的 StackOverflow 答案不起作用

标签 c# url browser webbrowser-control

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

关于c# - DocumentCompleted 多次触发 - 接受的 StackOverflow 答案不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18321872/

相关文章:

c# - 将 Rails 路由转换为 Asp.net MVC 路由

c# - 使用 Entity Framework 的代码优先在保存时抛出 DbUpdateException

regex - 似乎无法为 URL 垃圾邮件删除程序找到可靠的正则表达式

python - 如何检查 URL 是否可下载?

Javascript 破坏了 Firefox?

c# - JQuery - 将元素的坐标传递给后面的 ASP.NET 代码?

file - 使用文件 : protocol? 从 URL 读取的 API 的默认编码应该是什么

JavaScript检测父框架是否同源?

java - 如何从浏览器加载的 JAR 文件加载库?

c# - C# SortedList 如何按值获取键?