最完美解决方案:js弹出窗口关闭当前页面,而不弹出提示框

该功能主要用于业务系统中的登录操作,登录后弹出全屏的业务系统主界面,而不需要工具栏、地址栏、菜单等功能。

之前针对不同浏览器找了无数种方法,包括网上能查到的所有方法,弹出的结果都不理想。结果有的IE6,7,8支持但是IE11不支持,有些火狐支持,chrome不支持。

最后找了很久才找到这个方法:经过测试IE6、IE7、IE8、IE11,Chrome都很理想。唯一360浏览器弹出了新窗口后还是会新建一个空白窗口,太奇葩了。

代码如下:

var strStyle = 'height='+screen.availHeight+',width='+screen.availWidth+',left=0,top=0, toolbar=no, menubar=no, scrollbars=yes, resizable=yes,location=no, status=no';
        try {
             opener = window.open('login.jsp', 'login',strStyle); 
opener.focus();
window.open('', '_self');
} catch (ex) {
alert("你的浏览器弹出页面错误,错误信息:"+ex.message +"");
}finally{
parent.window.close(); //这里很关键
}

下面是以前的代码,有些浏览器不好使,不想再改了。

//关闭当前页面,并且打开新页面,(不提示)

function closeWinAndOpen(url) {

    var sWinName = "LR"+parseInt(Math.random() * 100000000);//利用随机数处理WinName

    window.open(url,sWinName, 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,copyhistory=yes');

    closeWin();

}

//关闭当前页面

function closeWin() {

    window.opener=null;

    window.open('','_self');

    window.close();

}

关闭父页面:

Response.Write("<script>window.top.opener=null;window.parent.close();</script>")

(window.top.close() 也好使)

设置window.opener=null 可以不显示:"您查看的网页正在试图关闭窗口,是否关闭窗口"

 

转载于:https://www.cnblogs.com/coolsundy/p/4825292.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值