我正在学习用 c# 编写 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)
{
}