最完美解決方案: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 可以不顯示:"您查看的網頁正在試圖關閉窗口,是否關閉窗口"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM