javascript學習(三)——常用方法(2) – Javascript教程_JS教程_技術文章 – 程式設計聯盟

一、兼容性較高的瀏覽器頁面關閉

//關閉網頁,不支持火狐(火狐返回上次瀏覽頁面)  
//FireFox非window.open()等彈出頁面,需要在地址欄中輸入about:config, 然後將dom.allow_script_to_close_windows改為true才能達到想要的效果。  
function CloseWebPage() { 
    if (navigator.userAgent.indexOf("MSIE") > 0) { 
        if (navigator.userAgent.indexOf("MSIE 6.0") > 0) { 
            window.opener = null; window.close(); 
        } 
        else { 
            window.open('', '_top'); window.top.close(); 
        } 
    } 
    else if (navigator.userAgent.indexOf("Firefox") > 0) { 
        window.history.go(-1); 
    } 
    else { 
        window.close(); 
    } 

//關閉網頁,不支持火狐(火狐返回上次瀏覽頁面)
//FireFox非window.open()等彈出頁面,需要在地址欄中輸入about:config, 然後將dom.allow_script_to_close_windows改為true才能達到想要的效果。
function CloseWebPage() {
    if (navigator.userAgent.indexOf("MSIE") > 0) {
        if (navigator.userAgent.indexOf("MSIE 6.0") > 0) {
            window.opener = null; window.close();
        }
        else {
            window.open('', '_top'); window.top.close();
        }
    }
    else if (navigator.userAgent.indexOf("Firefox") > 0) {
        window.history.go(-1);
    }
    else {
        window.close();
    }
}
 

二、window.showModalDialog()擴展

<span style="font-size:13px;">// 打開ModalDialog子窗口,並獲取返回值  
function ModalDialogOpen(wUrl, wWidth, wHeight) { 
    if (window.showModalDialog != null)//IE判斷  
    { 
        var returnvalue = window.showModalDialog(wUrl, "_self", "dialogWidth:" + wWidth + "px;dialogHeight:" + wHeight + "px;status:no;help:no;scrolling=yes;scrollbars=yes;center=yes"); 
        if(!returnvalue){ 
            returnvalue = window.ReturnValue;; 
        } 
        return returnvalue; 
    } 
    else { 
        this.returnAction = function(strResult) { 
            if (strResult != null) 
                return strResult; 
        } 
        window.open(wUrl, "", "width=" + wWidth + ",height=" + wHeight + ",menubar=no,toolbar=no,location=no,scrollbars=yes,status=no,modal=yes"); 
    } 

// 關閉ModalDialog子窗口,並返回值  
function ModalDialogClose(val) { 
    if (window.showModalDialog != null)//IE判斷  
    { 
        if (navigator.userAgent.indexOf("Chrome") > 0) { 
            // Chrome支持  
            window.opener.ReturnValue = val; 
        } else { 
            parent.window.returnValue = val; 
        } 
        window.close(); //firefox不支持  
    } 
    else { 
        window.opener.returnAction(val); 
        top.close(); //IE和FireFox都支持  
    } 

</span> 
<span style="font-size:13px;">// 打開ModalDialog子窗口,並獲取返回值
function ModalDialogOpen(wUrl, wWidth, wHeight) {
    if (window.showModalDialog != null)//IE判斷
    {
        var returnvalue = window.showModalDialog(wUrl, "_self", "dialogWidth:" + wWidth + "px;dialogHeight:" + wHeight + "px;status:no;help:no;scrolling=yes;scrollbars=yes;center=yes");
        if(!returnvalue){
            returnvalue = window.ReturnValue;;
        }
        return returnvalue;
    }
    else {
        this.returnAction = function(strResult) {
            if (strResult != null)
                return strResult;
        }
        window.open(wUrl, "", "width=" + wWidth + ",height=" + wHeight + ",menubar=no,toolbar=no,location=no,scrollbars=yes,status=no,modal=yes");
    }
}
// 關閉ModalDialog子窗口,並返回值
function ModalDialogClose(val) {
    if (window.showModalDialog != null)//IE判斷
    {
        if (navigator.userAgent.indexOf("Chrome") > 0) {
            // Chrome支持
            window.opener.ReturnValue = val;
        } else {
            parent.window.returnValue = val;
        }
        window.close(); //firefox不支持
    }
    else {
        window.opener.returnAction(val);
        top.close(); //IE和FireFox都支持
    }
}
</span>

 

摘自 塗劍凱的專欄

發佈留言