Я учусь писать BHO на С#, и я написал обработчики событий для DocumentComplete и BeforeNavigate2. Во время отладки я заметил, что они запускаются несколько раз для определенных веб-страниц, таких как yahoo.co.in.
Я понимаю, что это может быть из-за наличия нескольких фреймов на странице. Мои вопросы: -
- Как узнать, какое событие является полной загрузкой страницы?
- Как узнать, какое событие срабатывает, когда мы собираемся уйти со страницы?
Добавление примера кода
private InternetExplorer iExplorer;
int IObjectWithSite.SetSite(object pUnkSite)
{
if (pUnkSite != null)
{
ieInstance = (InternetExplorer)pUnkSite;
// Register the DocumentComplete event.
ieInstance.DocumentComplete += new DWebBrowserEvents2_DocumentCompleteEventHandler(ieInstance_DocumentComplete);
ieInstance.BeforeNavigate2 += new DWebBrowserEvents2_BeforeNavigate2EventHandler(ieInstance_BeforeNavigate2);
}
return 0;
}
private void ieInstance_BeforeNavigate2(object pDisp, ref object URL, ref object Flags, ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel)
{
}
private void ieInstance_DocumentComplete(object pDisp, ref object URL)
{
}
_pUnkSite
неверна. Объект site не ссылается на верхний объект браузера. - person noseratio   schedule 12.02.2014