イベントDocumentCompletedをコントロールWebBrowserに追加します。これは私のコードです。それは動作しません。私がしたいことは(場合https://www.google.fr
中)ページの読み込みが完了したとき、例えば、ユーザーがキーワードを入力し、それを検索し、新しいページのWebブラウザーと毎回開いているイベントをWebBrowserにDocumentCompletedで追加する#
<asp:Button id="Button_Auth" Text="Authentification" OnClick="Authentification_Click" runat="server"/>
<asp:label id="Messages" runat="server"/>
public void Authentification_Click(object sender, EventArgs e)
{
string input = "https://www.google.fr";
runBrowserThread(input);
Messages.Text = "ok";
}
private void runBrowserThread(String url)
{
var th = new Thread(() => {
var br = new WebBrowser();
br.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(browser_DocumentCompleted);
br.Navigate(url,true);
});
th.SetApartmentState(ApartmentState.STA);
th.Start();
}
public void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var br = sender as WebBrowser;
Messages.Text = e.Url.ToString();
}
。結果のページが読み込まれたら、結果のURLを返信しますhttps://www.google.fr/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=keyword
と私のラベルのメッセージに表示します。
私のコードがうまくいかない理由はわかりません。
これはasp .netウェブアプリケーションです。 DocumentCompletedイベントはwinformsアプリケーションでのみ使用できますか?OK ...おそらく正しいでしょう。ところで、JavaScriptコードの例を挙げてください。ありがとう。 – Stephane
しかし、他の人のページにJavaScriptを追加することはできません.Google.frでは、独自のページをデザインし、JavaScriptを追加してドキュメントの読み込み完了イベントを発生させます。 jqueryでは、事前に構築されたイベントがあるので、簡単に実行できます。しかし、あなたが言及しているシナリオでは、Google検索の結果URLをキャプチャする必要があるように見えますが、私はwinformsの方向に行かなければならないと思います。スレッド化された方法でWebブラウザコントロールを開くコードでさえ、デスクトップアプリケーションでのみ動作しますが、asp.netでは動作しません。 – NatarajC
私はそれを参照してください。つまり、他のURLにURLを取得することはできません。 ドメイン名はJavascriptで取得できます。そして、もし私たちがC#でそれをすることをやめれば、それはwinformアプリケーションでなければなりません。私たちのドメイン名ではないにもかかわらず、ウェブブラウザでURLを取得するために、asp.netのウェブアプリケーションで他の方法を利用することができますか?ありがとう。 – Stephane