如果设置为e.cancel = true,则window.opener为空,去掉e.cancel=true,则window.opener可以获取到。
例子如下:
private void webBrowser1_NewWindow3(object sender, AxSHDocVw.DWebBrowserEvents2_NewWindow3Event e)
{
if (e.bstrUrl.Contains("imgupload/pic_upload.asp?forminputname=myform.img"))
{
backUrl = "imgupload/pic_upload.asp?forminputname=myform.img";
//_url + "check.asp?cityid=" + SysUser.Cityid + "&userid=" + SysUser.UserId + "&backUrl="
FrmWinOpen frw = new FrmWinOpen(_url + "check.asp?cityid=" + SysUser.Cityid + "&userid=" + SysUser.UserId + "&backUrl=" + backUrl, e);
e.ppDisp = frw.axWebBrowser1.Application;
frw.axWebBrowser1.RegisterAsBrowser = true;
frw.Show();
//e.cancel = true;
}
}
这种情况下,frw.axWebBrowser1内容中调用opener不为空,关系正常建立