2009-04-20 28 views
1

私はVB.netのWebcrawlerで作業しています.JavaScriptやフォームの投稿を使用するサイトでは、System.Forms.WebBrowserオブジェクトを使用してナビゲーションを処理していますが、問題。フォームポストでロードされたページに戻る(WebBrowser.GoBack())を後ろに移動すると、ページが期限切れとなり、リクエストを再送信するためにリフレッシュを実行する必要があります。私がリフレッシュ(WebBrowser.Refresh())を呼び出すと、ダイアログボックスがポップアップして確認されます。このモーダルダイアログをコードで回避する方法はありますか?ありがとう!VB.NetのWebBrowser.Refreshの問題

+0

WebBrowserRefreshOptions(Normal、Complete、IfExpired)を使用してみました。 –

答えて

2

System.Windows.Forms.WebBrowserRefreshOption型の更新オプションを渡すことができる場合があります。

ここで説明するいくつかのオプションがあります:
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowserrefreshoption.aspx

オプションを使用すると、プログラムでWebブラウザの更新を制御することができる唯一の方法であると思われます。

+0

私は、IfExpiredと完全にオプションを選択して、私がそれを試みたことを言及すべきでした。私はまだリフレッシュのプロンプトを見る –

1

JavaScriptの警告が表示されたポップアップでも同様の問題が発生しました。私はwindow_errorイベントを使用してそれを抑制することができました。

私はbrowser_completedイベントハンドラに次の行を追加:this._browser.ScriptErrorsSuppressedと周りいじるさについて考える

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

別のオプション:ここで

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

は私のwindow_errorイベントハンドラです。私はかなりあなたがスクリプトエラーを取得していないと確信していますが、それはショットの価値がある。

0

私は回避策/ここでは、この問題を解決するためにハックを発見した:http://www.experts-exchange.com/Programming/Languages/.NET/Q_25160302.html

は、基本的にはこのようにそれを行う:

​​

SendKeys.Send("{Enter}");ラインがある、アクティブなウィンドウにキーを入力し送信します我々が取り除きたいモーダルダイアログ。

関連する問題