URL-адрес доступа из элемента управления веб-браузером Microsoft в mfc VC

#mfc

#mfc

Вопрос:

я использую элемент управления веб-браузером Microsoft в приложении MFC.

Он отображает страницу входа в систему изначально с помощью

метод control.navigate (URL)

После входа в систему мне нужно получить доступ к URL-адресу из элемента управления.

Как это можно сделать?

Кто-нибудь может мне помочь

Ответ №1:

Элемент управления веб-браузером имеет событие OnBeforeNavigate2, которое запускается перед переключением страниц. Обработчик события получает новый посещенный URL-адрес.

Если вы используете CDHTMLView, вам даже не нужно добавлять обработчик событий: просто переопределите виртуальный OnBeforeNavigate2().

Ответ №2:

URL-адрес отправляется вам в событии DocumentComplete. Проверьте пример MFCIE, образец обрабатывает событие для обновления адресной строки.

Обратите внимание, что URL-адрес может отличаться от того, который вы передали для навигации или получения из OnBeforeNavigate2. Например, если вы передаете microsoft.com для Navigate2 вы получите www.microsoft.com возврат из-за перенаправления на стороне сервера.

Ответ №3:

В MSDN есть раздел, посвященный «Использованию MFC для размещения элемента управления веб-браузером«. Там упоминается использование следующего:

 //CWebBrowser2 m_browser - to access the WebBrowser control  

CString string1, string2;

string1 = m_browser.GetLocationName(); // gets the page title
string2 = m_browser.GetLocationURL();  // gets the page URL
  

Что касается того, когда вы пытаетесь получить эту информацию, вы можете проверить m_browser.Busy(...) или m_browser.ReadyState(...) посмотреть, выполняется ли в данный момент какая-либо навигация / загрузка.

Я признаюсь, что сам никогда не использовал этот элемент управления, поэтому не знаю, есть ли простой способ получить обратный вызов, сообщающий, что URL-адрес изменился, но приведенная выше ссылка должна предоставить вам большую часть необходимой информации. Надеюсь 🙂