2
我正在學習在c#中編寫BHO,並且我已經爲DocumentComplete和BeforeNavigate2編寫了事件處理程序。在調試過程中,我注意到他們被多次觸發,如yahoo.co.in等某些網頁。如何知道整個文檔的查找DocumentComplete和BeforeNavigate2事件?
據我所知,這可能是因爲頁面中存在多個框架。 我的問題是: -
- 我怎麼知道這是被加載的完整頁面的事件?
- 我如何知道當我們要離開頁面時會觸發哪個事件?
添加一些示例代碼
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)
{
}
1(也許2)聽起來像它回答這個:http://stackoverflow.com/a/8359461/593627 –
@GeorgeDuckett,部分它關於'_pUnkSite'是錯誤的。該站點對象不引用頂部瀏覽器對象。 – Noseratio
@Noseratio:好的,謝謝你的糾正。說實話,我對這個話題並不熟悉,我剛剛找到答案(已被接受),並認爲它是正確的(沒有看評論)。 –