• 締切済み

[C#]webbrowserのstop()について

C#のwebbrowserのstopはどういったことをしてくれるんでしょうか? ググると、一番わかりやすいのが 『保留中のナビゲーションをキャンセルし、バックグラウンド サウンドやアニメーションなどの動的なページ要素をすべて停止します。』 ウェブページをwebbrowserで読み込むと、いらないページ(広告ページなど)を読み込むので、 指定のページが読み込み終わったら、もう他のは読み込まないとしたいのですが、うまくいきません。 webbrowser1.Navigated("http://www.yahoo.co.jp") でアクセスして、 webBrowser1_DocumentCompleted のイベントの中に、 if (e.Url == "http://www.yahoo.co.jp"){ webbrowser1.stop();} と書いたのですが、それ以降も読み込んでいます。。。 ただ、これを書いたほうが確かにいつもより読み込みページ数が少なくなるような気がします。 調査の仕方としては、 webBrowser1_DocumentCompleted が発生した時のe.Urlと時間(DateTime.Now)を調査して、 http://www.yahoo.co.jpを読み込んだあとに、まだ続いて広告などを読み込んでしまいます。 textBox1.Text += e.Url.ToString() + "[" + DateTime.Now + "]\r\n"; というふうに書いて見ています。 狙いとしては、http://www.yahoo.co.jpが読み込み終わったら、webbrowserの残されている読み込みページを読まずに、終了して欲しいのです。 文書がわかりにくくて済みません。 ヒントでもいいので教えていただけると助かります。

みんなの回答

  • chie65535
  • ベストアンサー率43% (8533/19397)
回答No.1

stop()は「読み込みの中断」はしません。 ページ内で「読み込め」と指示のあった物は、すべて読み込みます。 すべて読み込んだ上で、BGMやアニメを停止するだけです。 >狙いとしては、http://www.yahoo.co.jpが読み込み終わったら、webbrowserの残されている読み込みページを読まずに、終了して欲しいのです。 そういう関数は無いんじゃないかな。残念ながら。

kitattyo20333
質問者

お礼

返事ありがとうございます。 stop以前に命令があったものは全て読み込むのですね。 それでは、stop以降に読み込もうと待機していたものは読み込まなくなるのですか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C#でstop()が使えない。

    http://kana-soft.com/tech/sample_0012_3.htm#WebBrowser_Stop このHPを参考にstop()メソッドを使おうとしたのですがSTOP()に下記のエラーが出ます。 'System.Windows.Forms.WebBrowser' に 'stop' の定義が含まれておらず、型'System.Windows.Forms.WebBrowser' の最初の引数を受け付ける拡張メソッドが見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。 VS2010を使用し、.NETは4なので問題なく使えると思うのですが原因不明です。 以下ソースです。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace busywait4 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { webBrowser1.Navigate("http://yahoo.co.jp");//もう一度、アクセスしなおす。 } int i; private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { webBrowser1.stop(); }

  • WebBrowserでgoogle検索するには?

    WebBrowserを使ってgoogle検索をVBで作ったブラウザ上で行いたいです。 具体的には、 「ComboBoxで選択した値」と「TextBoxで書き込んだキーワード」を &検索したいのですが Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted WebBrowser1.Document.All.GetElementsByName("q")(0).InnerText = TextBox1.Text WebBrowser1.Document.All.GetElementsByName("q")(0).InnerText = ComboBox1.SelectedItem WebBrowser1.Document.Forms(0).InvokeMember("submit") End Sub では、&検索ができません。常にコンボボックスで選択されたものだけが 検索され、しかも無限に検索をします。 対処法を教えていただけないでしょうか?

  • C# WEB表示について

    フォーム上にwebBrowser1があって下の通りに読み込み完了しましたと出ますが、 webBrowser1に表示されません。どうしたらいいですか? webBrowser1のプロバティでイベントを利用するのではなくコードで作りたいので、どなたか教えて頂けませんか? ボタン1はヤフーで、ボタン2とかも製作したいので。 ソース private void button1_Click(object sender, EventArgs e) { WebBrowser webBrowserForPrinting = new WebBrowser(); webBrowserForPrinting.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webview); webBrowserForPrinting.Url = new Uri("http://www.yahoo.co.jp/"); } private void webview(object sender,WebBrowserDocumentCompletedEventArgs e) { MessageBox.Show("Webページの読み込みが完了しました!!"); }

  • 正しいWebBrowserの使い方(ループ判定)

    VB2008を使っています。WebBrowserのコンポーネントを使って ホームページにGET形式でパラメータを渡して画面のBODY部分を読み取る ものを作っているのですが、サーバーのレスポンスにもよりますが 1分間に20回で5分(100回程度)連続アクセスをするのですが、 以下のルーチンの場合何か不安を感じまして、 ネットでこれを使えばOKというものが無くて 確実に読み取る方法が知りたくて質問いたしました。 やはり、2つ目のイベントを用いる方が安心でしょうか? 正しいWebBrowserの使い方(ループ判定)をご存知の方教えてください。 '***** WebBrowser1.ReadyState ***** WebBrowser1.Navigate(URL) Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete Or WebBrowser1.IsBusy = True Application.DoEvents() Loop data = WebBrowser1.DocumentText '***** DocumentCompletedイベントまでループ ***** public wait_flag as Boolean wait_flag = True WebBrowser1.Navigate(URL) Do While (WebBrowser1.IsBusy = True) Or (wait_flag = True) Application.DoEvents() Loop data = WebBrowser1.DocumentText '---- イベント ----- Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted wait_flag = False End Sub

  • WebBrowserでHtmlを取得

    WebBrowserでHtmlを取得する方法をおしえてください フォーム上に、WebBrowser1、TextBox1、Button1を配置しています。 TextBox1にHtmlを表示し、Button1は、WebBrowser1に表示している WEBページを更新します。 やりたい事  (1)フォームを開いた時に、URLで指定したWEBページを表示させ   TextBox1にHtmlを表示させる。  (2)Button1をクリックした時、表示しているWEBページを更新する。   更新後のHtmlをTextBox1に表示させる。  (3)TextBox1の表示が完了したらHtmlを処理する。(未着手) 現在、(1)は動作するのですが、(2)が動作しません(TextBox1のHtmlが更新されない) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load WebBrowser1.Navigate(オッズURL):webcompflag = False Do While (webcompflag = False) System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(10) Loop TextBox1.Text = WebBrowser1.Document.Body.InnerHtml End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Text = "" If Not WebBrowser1.Url.Equals("about:blank") Then WebBrowser1.Refresh() : webcompflag = False Do While (webcompflag = False) System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(10) Loop TextBox1.Text = WebBrowser1.Document.Body.InnerHtml End Sub 何がいけないのか分かりません よろしくお願いします。

  • C# にて時々処理が失敗します。

    メモ帳みたいなソフトを作っており、 以下のコードにてタイムスタンプボタン(Button2)を押すと、 メモの現在行にフォーカスして現在時刻を貼り付ける・・・ という動作をしてるのですが、これが3割くらいの確立で失敗します。 void Button2Click(object sender, EventArgs e) {    Clipboard.SetDataObject(DateTime.Now.ToString("HH:mm "));    textBox1.Focus();    textBox1.Paste(); } なにかお気づきの点などあれば教えていただきたいです。 開発環境>C#,dotNET3.5,SharpDevelop 3.0

  • WebBrowserの読み込み待ちの処理の仕方

    VB2005にてプログラムしております。 WebBrowser内にて表示したページでID、PASSを自動入力、ログインするというプログラムですが、 -------------------------------------------------------------     Dim IDCODE As String = TextBox1.Text Dim PASSCODE As String = TextBox2.Text '文字列で指定したURLに飛ぶ WebBrowser1.Navigate("https://XXXXXXXXX.ne.jp/") '表示終了まで待つ ??????    ‘WebBrowser1へID、PASS入力処理 ------------------------------------------------------------- 上記の ?????? 部分に表示待ちの処理をするコードを入れると思うのですが、 With WebBrowser1 Do While .IsBusy = True Loop Do While .ReadyState <> "complete" Loop End With を入力すると読み込み途中で止まってしまうみたいです。 なにかいい方法がありますか?

  • webbrowserに表示させたページのリンクをクリックしたい。

    お世話になります。 vb2005でウェブブラウザにページを表示させて webbrowser1.navigate("http://yahoo.co.jp") 5番目のURLをクリックさせるのはどうすればいいでしょうか? 教えてください。お願いします。

  • URLをテキストボックスに表示したい vb2008

    Private Sub 移動CB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 移動CB.Click WebBrowser1.Url = New Uri(アドレスTextBox.Text) アドレスTextBox.Text = WebBrowser1.Url End Sub アドレスTextBoxにURLを手動で入力して、移動CBを押すと指定したサイトがWebBrowser1に表示されます。 そこでそのサイト内のURLをクリックしたときに新しいURLをアドレスTextBoxに表示させたいのですがうまくできません。 アドレスTextBox.Text = WebBrowser1.Urlがurlだとビルド失敗になってしまいます。 なので アドレスTextBox.Text = WebBrowser1.Text にしてみたのですがうまくできません。 どうすればいいのでしょうか?よろしくお願いします。

  • C# Webブラウザコントロールの質問

    C# Webブラウザコントロールで現在表示されてるURLを読み取って 表示を変えようと試みていますが上手くいきません。 string strURL = webBrowser1.Url.ToString(); if (strURL == "http://google.com"); { webBrowser1.Navigate("http://yahoo.co.jp"); } 上記だと現在がグーグルならヤフーに切り替えという 例ですが処理されません。 2行目の「;」を入れると「emptyステートメントが間違っている 可能性があります」と警告も出ています。 「;」を省くと警告もエラーも出ませんが、処理も上手くいきません。 色々試しましたが暗礁に乗り上げている状態です。 是非、お知恵を貸してください。