2016-04-11 4 views
0

Я хочу добавить событие 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 и покажу его в своем сообщении «Сообщения».

Я не знаю, почему мой код не работает.

ответ

0

Проверьте, правильно ли выполнено событие для вашего обработчика событий.

Это приложение asp.net или приложение winforms или приложение wpf? В приложении asp.net это событие недоступно. Если asp.net попробует JavaScript

+0

Это веб-приложение asp .net. Вы имеете в виду, что событие DocumentCompleted можно использовать только в приложении winforms? ОК ... может быть, это правильно. Кстати, вы можете привести пример кода JavaScript для этого. Благодарю. – Stephane

+0

Но вы не можете добавить JavaScript на чужую страницу в этом случае Google.fr, вы можете создать свою собственную страницу, а затем добавить JavaScript, который будет запущен при завершении загрузки документа. В jquery это легко сделать, поскольку для этого есть заранее построенное событие. Но для сценария, о котором вы упоминаете, похоже, что вам нужно зафиксировать URL-адрес результатов поиска Google, я думаю, вам нужно идти в winforms направлении. Даже ваш код, который открывает управление веб-браузером в поточном режиме, будет работать только в настольном приложении, но не в asp.net. – NatarajC

+0

Хорошо, я это вижу. Это означает, что мы не можем получить URL-адрес в другом домене с Javascript. И если мы хотим сделать это с помощью C#, это должно быть приложение winform. Можем ли мы иметь другие способы в веб-приложении asp .net, чтобы получить URL-адрес в веб-браузере, даже если это не в моем доменном имени. Благодарю. – Stephane

Смежные вопросы