system.windows.forms.webbrowser里怎么解决网页中window.open和window.close问题:
一个网页是先打开个新的网页,关掉自己。
我想做个浏览器,最好在是在这个webbrowser里直接打开新网页。
newwindow时最好是还能在本form里显示,不在IE里打开,最好也不要new form。
close最好不关掉窗口。
一个网页是先打开个新的网页,关掉自己。
我想做个浏览器,最好在是在这个webbrowser里直接打开新网页。
newwindow时最好是还能在本form里显示,不在IE里打开,最好也不要new form。
close最好不关掉窗口。
AxSHDocVw.AxWebBrowser _axWebBrowser=CreateNewWebBrowser();//这是我自定义函数
e.ppDisp=_axWebBrowser.Application;
_axWebBrowser.RegisterAsBrowser=true;
不过还有个变通方法,没上面的好:
private void WB_NewWindow2(object sender, AxSHDocVw.DWebBrowserEvents2_NewWindow2Event e)
{
ie=new SHDocVw.InternetExplorer();
ie.RegisterAsBrowser=true;
e.ppDisp=ie;
ie.DownloadBegin+=new DWebBrowserEvents2_DownloadBeginEventHandler(ie_downloadBegin);
} private void ie_downloadBegin()
{
if(ie!=null)
{
string strURL=((HTMLDocument)ie.Document).url;
ie.Quit();
object o=null;
WB.Navigate(strURL,ref o,ref o,ref o,ref o);
}
ie=null;
}
这方法不好,不过可以实现你的要求,最早我就用这第二种方法
{
SHDocVw.WebBrowser g;
g = ((SHDocVw.WebBrowser)(webBrowser1.ActiveXInstance));
g.NewWindow3 += NewWindow3;
}public void NewWindow3(ref object ppDisp, ref bool Cancel, uint dwFlags, string bstrUrlContext, string bstrUrl)
{
Cancel = false;
((SHDocVw.WebBrowser)(webBrowser1.ActiveXInstance)).RegisterAsBrowser = true;
dy gg = new dy();
ppDisp = gg.webBrowser1.ActiveXInstance;
gg.Show();
}