繁体   English   中英

VB.Net中的WebBrowser.Refresh问题

[英]WebBrowser.Refresh problem in VB.Net

我正在VB.net中使用WebCrawler,并使用System.Forms.WebBrowser对象来处理使用javascript或表单发布的网站上的导航,但是我遇到了问题。 当我向后导航(WebBrowser.GoBack())到已加载表单发布的页面时,该页面已过期,我必须刷新以重新发送请求。 当我调用刷新(WebBrowser.Refresh())时,将弹出一个对话框进行确认。 有什么办法可以解决代码中的模式对话框? 谢谢!

您可能可以传递System.Windows.Forms.WebBrowserRefreshOption类型的刷新选项。

这里有几个选项:
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowserrefreshoption.aspx

这些选项似乎是您可以编程方式控制Web浏览器刷新的唯一方法。

我在弹出窗口中出现了类似的问题,并显示了JavaScript警告。 我设法使用window_error事件抑制了它。

我将此行添加到browser_completed事件处理程序中:

((WebBrowser)sender).Document.Window.Error +=
    new HtmlElementErrorEventHandler(Window_Error);

这是我的window_error事件处理程序:

void Window_Error(object sender, HtmlElementErrorEventArgs e)
{
    e.Handled = true;
}

要考虑的另一种选择是this._browser.ScriptErrorsSuppressed 我很确定您没有遇到脚本错误,但是值得一试。

我在这里找到了解决此问题的解决方法/黑客: http : //www.experts-exchange.com/Programming/Languages/.NET/Q_25160302.html

基本上,您可以这样做:

Browser.Refresh(WebBrowserRefreshOption.Completely);
SendKeys.Send("{Enter}");

SendKeys.Send("{Enter}"); 行将Enter键发送到活动窗口,这是我们要摆脱的模式对话框。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM