Я хочу добавить событие DocumentCompleted к моему управлению WebBrowser. Это мой код. но это не сработает.добавить событие DocumentCompleted к WebBrowser в C#
<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();
}
То, что я хочу открыть новую страницу WebBrowser и каждый раз, когда страница (в случае https://www.google.fr
) завершает загрузку, например, пользователь ввести ключевое слово и найти его , когда страница результата завершит загрузку, я верну URL-адрес результата https://www.google.fr/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=keyword
и покажу его в своем сообщении «Сообщения».
Я не знаю, почему мой код не работает.
Это веб-приложение asp .net. Вы имеете в виду, что событие DocumentCompleted можно использовать только в приложении winforms? ОК ... может быть, это правильно. Кстати, вы можете привести пример кода JavaScript для этого. Благодарю. – Stephane
Но вы не можете добавить JavaScript на чужую страницу в этом случае Google.fr, вы можете создать свою собственную страницу, а затем добавить JavaScript, который будет запущен при завершении загрузки документа. В jquery это легко сделать, поскольку для этого есть заранее построенное событие. Но для сценария, о котором вы упоминаете, похоже, что вам нужно зафиксировать URL-адрес результатов поиска Google, я думаю, вам нужно идти в winforms направлении. Даже ваш код, который открывает управление веб-браузером в поточном режиме, будет работать только в настольном приложении, но не в asp.net. – NatarajC
Хорошо, я это вижу. Это означает, что мы не можем получить URL-адрес в другом домене с Javascript. И если мы хотим сделать это с помощью C#, это должно быть приложение winform. Можем ли мы иметь другие способы в веб-приложении asp .net, чтобы получить URL-адрес в веб-браузере, даже если это не в моем доменном имени. Благодарю. – Stephane