SHDocVw.WebBrowser的BeforeNavigate2事件无效

kotizheng kotizheng 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
使用webBrowser控件,想监控导航开始事件,大致象下面的样子

WebBrowser m_WebBrowser = new WebBrowser()
...
SHDocVw.WebBrowser wb = (SHDocVw.WebBrowser)m_WebBrowser.ActiveXInstance;
wb.BeforeNavigate2 += wb_BeforeNavigate2;
wb.NavigateComplete2 += wb_NavigateComplete2;
wb.DocumentComplete += wb_DocumentComplete;
wb.Silent = true;

void wb_BeforeNavigate2(object pDisp, ref object URL, ref object Flags, ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel)
{
if (pDisp == wb.Application)
{
m_isCompleted = false;
}
}
。。。
只有 BeforeNavigate2事件无法响应,NavigateComplete2 和DocumentComplete 可以工作的很好。

虽然可以使用m_WebBrowser本身的Naviging事件,时机虽然和BeforeNavigate2事件一样,但没有pDisp,
我想要这个东西来判断是否是主页面的导航,比如比较复杂的页面,含有frame,甚至有js弹出窗口,我只想监控
主页面的事件,而传递的pDisp可以帮我做这个判断,但现在问题就是这个事件无论如何不会被响应,百思不得其解啊!
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
kotizheng
C# 111,128 成员 642,536 内容