gpt4 book ai didi

c# - 如何知道整个文档的 find DocumentComplete 和 BeforeNavigate2 事件?

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:11 25 4
gpt4 key购买 nike

我正在学习用 c# 编写 BHO,并且我已经为 DocumentComplete 和 BeforeNavigate2 编写了事件处理程序。在调试过程中,我注意到某些网页(如 yahoo.co.in)会多次触发它们。

我知道这可能是因为页面中存在多个框架。我的问题是:-

  1. 我怎么知道加载完整页面的事件是什么?
  2. 我如何知道在我们即将离开页面时触发的是哪个事件?

添加一些示例代码

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)
{
}

最佳答案

使用 BeforeNavigate2DocumentComplete 事件处理程序的 pDisp 参数,它引用 SHDocVw.WebBrowser< 的实例 框架(或顶级浏览器)对应的对象:

static bool IsTop(object pDisp)
{
var thisBrowser = pDisp as SHDocVw.WebBrowser;
var parent = thisBrowser .Parent as SHDocVw.WebBrowser;
return (parent == thisBrowser || parent == null);
}

关于c# - 如何知道整个文档的 find DocumentComplete 和 BeforeNavigate2 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21724700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com