0

重複の可能性:
C#でWebBrowserコントロールのDocumentCompletedイベントを使用するにはどうすればよいですか?

DocumentCompletedイベントが3回発生する理由を誰かに教えてもらえますか?

ドキュメントが本当にダウンロードされたことをどうやって知ることができますか?

(jQueryがたくさんあるページをテストに使用しました。)

ありがとうございました!

var webBrowser1 = new WebBrowser
                {
                    Padding = new Padding(0),
                    Margin = new Padding(0),
                    Dock = DockStyle.Fill,
                    Url = url,
                    TabStop = false,
                    ScriptErrorsSuppressed = true,
                    IsWebBrowserContextMenuEnabled = false
                };
                webBrowser1.Navigated +=  (d1,d2) => 
                {
                    Debug.WriteLine("Navigated " + DateTime.Now.TimeOfDay.ToString());
                };
                webBrowser1.DocumentCompleted += (d1, d2) => 
                {
                    Debug.WriteLine("DocumentCompleted " + DateTime.Now.TimeOfDay.ToString());                
                };


                form.Controls.Add(webBrowser1);
                form.Show();

ログ:

ナビゲート09:40:40.1807403ナビゲート09:40:44.7270004 DocumentCompleted 09:40:44.7300005ナビゲート09:40:46.5791063 DocumentCompleted 09:40:46.5821065ナビゲート09:40:50.1113083 DocumentCompleted 09:40:50.7133428 DocumentCompleted 09:40:50.7233433

4

1 に答える 1

0

ここで良いアプローチを見つけました

C#でWebBrowserコントロールDocumentCompletedイベントを使用するにはどうすればよいですか?

 webBrowser1.DocumentCompleted += (d1, d2) => 
                {


                    string urlCurrent = d2.Url.ToString();
                    var browser = (WebBrowser)d1;

                    if (!(urlCurrent.StartsWith("http://") || urlCurrent.StartsWith("https://")))
                    {
                        // in AJAX     
                    }
                    if (d2.Url.AbsolutePath != browser.Url.AbsolutePath)
                    {
                        // IFRAME           
                    }
                    else
                    {
                        // REAL DOCUMENT COMPLETE

                        Debug.WriteLine("DocumentCompleted " + DateTime.Now.TimeOfDay.ToString());
                    }

                };
于 2012-08-28T13:00:16.137 に答える