这几在做一个浏览器的自动化下载的工具,发现自己做的demo和做的项目代码运行不一致,代码就那么几行,拷贝过去为什么有些行为就不一样呢?经过分析发现原来有.net4.0和.net2.0中的webbrowser控件存在这样的差异:

webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.Navigating += new WebBrowserNavigatingEventHandler(WebBrowser_Navigating);
var axWB = webBrowser1.ActiveXInstance as SHDocVw.WebBrowser;
axWB.RegisterAsBrowser = true;
axWB.NewWindow2 += new DWebBrowserEvents2_NewWindow2EventHandler(axWB_NewWindow2);
axWB.NewWindow3 += new DWebBrowserEvents2_NewWindow3EventHandler(axWB_NewWindow3);

在.net4.0下只可以触发NewWindow2,而在.net2.0中会先后触发NewWindow3和NewWindow2,而且如果要取消新窗口,只有在NewWindow3中处理有效。

05-07 12:56