Skip to main content
 首页 » 编程设计

C#之覆盖 WebBrowserDocumentCompletedEventHandler 的事件参数

2024年01月02日40wayfarer

我想覆盖 WebBrowserDocumentCompleted 事件的 EventArgs。我无法创建个人事件处理程序,因为我不知道何时应该触发事件 DocumentDownloadCompleted。我想添加到 EventArgs 的数据是 OriginalPageLink。

我正在尝试下载页面,但我被重定向到登录页面(仅一次)。我已经设置了一种登录方式,但后来我想重新尝试导航到原始页面,但我没有了。我可以设置一个全局变量来跟踪每次链接,但是,有没有办法编辑 EventArgs?我是否还需要修改 WebBrowserDocumentCompletedEventHandler。

我的代码看起来像

private void Submit_Click(object sender, EventArgs e) 
{ 
    webBrowser1 = new WebBrowser(); 
    webBrowser1.AllowNavigation = true;            
    webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted); 
    webBrowser1.Navigate(OriginalPageLink); 
} 
 
private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    if (e.Url.ToString().Contains("login.smlogin.ibb.ubs.net")) { 
        loginWithWEBSSO(webBrowser1); 
        webBrowser1.Navigate(***e.OriginalPageLink***); 
    } else {  
        string mybody = webBrowser1.Document.Body.InnerText; 
    } 
} 

预先感谢您提出任何建议。

马可

请您参考如下方法:

您只需要锁定 WebBrowser.Navigating事件以使用某种集合来跟踪导航历史记录。返回登录前的上一页。 Navigate 事件将触发 Navigating 并删除以前的 URL,因此您需要管理一个集合或仅限制在您的状态下管理哪些项目。