多标签浏览器,遇到页面有window.opener 新窗口有bug,求解决办法
我用 ExtendedWebBrowser 控件写的一个多标签浏览器,
在解决弹出新窗口时解决了99%的问题,但是还有一个辣手的问题没有解决,求解。
问题:当浏览者重a页面到b页面时,a页面通过
<script language="Javascript">
window.open(' dmain.htm','CRM','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=500,height=500,left=0,top=0');
window.opener=null;
window.open("","_self");
window.close();
</script>
打开b页面时,打开b页面一切正常,
但是,如果b页面里有一个权限验证的代码,那就出问题了,如b页面有如下验证代码:
<script language="javascript">
if(typeof(opener) == "undefined")
{
alert("禁止非法进入页面!");
window.opener=null;
window.open("","_self");
window.close();
}
</script>
b页面打开是会提示“禁止非法进入页面”。
请高人指点一下,我测试了网上很多代码都无法解决这个问题:
我做了个测试包,下载地址:http://www.ahtxh.net/soft/browser.rar
测试包中,在c#代码中打开logo.htm页面,就有连接了。
c#代码中:
void webbrowser_StartNewWindow(object sender, BrowserExtendedNavigatingEventArgs e)
{
CreateNewTabPage(e.Url.ToString());
e.AutomationObject = CurrentWebBrowser.Application;
e.Cancel = true;
}
其中 e.AutomationObject = CurrentWebBrowser.Application; 这句就是对 window.opener 起作用的,但是我这里没有其他作用,不知道哪里错了,请高手处理下,
这个感激不尽。
在解决弹出新窗口时解决了99%的问题,但是还有一个辣手的问题没有解决,求解。
问题:当浏览者重a页面到b页面时,a页面通过
<script language="Javascript">
window.open(' dmain.htm','CRM','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=500,height=500,left=0,top=0');
window.opener=null;
window.open("","_self");
window.close();
</script>
打开b页面时,打开b页面一切正常,
但是,如果b页面里有一个权限验证的代码,那就出问题了,如b页面有如下验证代码:
<script language="javascript">
if(typeof(opener) == "undefined")
{
alert("禁止非法进入页面!");
window.opener=null;
window.open("","_self");
window.close();
}
</script>
b页面打开是会提示“禁止非法进入页面”。
请高人指点一下,我测试了网上很多代码都无法解决这个问题:
我做了个测试包,下载地址:http://www.ahtxh.net/soft/browser.rar
测试包中,在c#代码中打开logo.htm页面,就有连接了。
c#代码中:
void webbrowser_StartNewWindow(object sender, BrowserExtendedNavigatingEventArgs e)
{
CreateNewTabPage(e.Url.ToString());
e.AutomationObject = CurrentWebBrowser.Application;
e.Cancel = true;
}
其中 e.AutomationObject = CurrentWebBrowser.Application; 这句就是对 window.opener 起作用的,但是我这里没有其他作用,不知道哪里错了,请高手处理下,
这个感激不尽。
...全文
相关推荐
window.open打开新窗口,不被拦截的方法
此外,还有一段HTML代码用于关闭当前窗口:```html<html><body onload="window.parent.opener=null;window.close();"></body></
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
在IE6中,使用 `window.opener = null; window.close();` 的组合,可以在打开一个新窗口后关闭原窗口,并且不会显示通常的"要关闭窗口吗?"的确认提示。
JS window对象的top、parent、opener含义介绍
parent与opener的区别在于,parent是指当前页面的父级框架窗口,而opener是特指通过window.open()方法创建的新窗口的原始窗口。
JS window.opener返回父页面的应用
这时,我们可以使用如下代码:```javascript// 支付成功后的回调function onPaymentSuccess(url) { // 更新父窗口的URL,跳转到支付成功页面 window.opener.location.href
javascript window.opener的用法分析
pageURL参数指定了新窗口中将要加载的页面路径;name参数为新窗口提供了一个句柄名;parameters参数则是一系列以逗号分隔的窗口参数,用于定义新窗口的特征和行为。


