簡體   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