#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-адрес изменился, но приведенная выше ссылка должна предоставить вам большую часть необходимой информации. Надеюсь 🙂