js弹出模态与非模态页面

js弹出模态与非模态页面
1、非模态页面

window.open()

子页引用父页

window.opener

2、模态页面

window.showModalDialog(url,window,"dialogHeight:200px;dialogWidth:200px;center:Yes;Help:No;Resizable:No;Status:Yes;Scroll:auto;Status:no;");

子页引用父页window.parent.dialogArguments

或者子页中window.returnValue = xxx;返回给父页var ret = window.showModalDialog()

关于Chrome浏览器中模态窗体中页面无返回值的解决方案:

父页面

if (window.ActiveXObject) { //IE 

    $("#choose_entp").click(function() {

        var returnValue = window.showModalDialog("SelectEntpInfo.do?mod_code=${af.map.mod_code}&xxx=" + Math.random(), window, "dialogWidth:630px;status:no;dialogHeight:440px");

        if (returnValue != null) {

            setValue(returnValue.id, returnValue.name);

        }

    });

} else { //非IE 

    $("#choose_entp").click(function() {

        window.open("SelectEntpInfo.do?mod_code=${af.map.mod_code}&xxx=" + Math.random(), 'newwindow', 'height=440,width=630,top=150,left=300,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');

    });

}



function setValue(id, name) {

    $("#entp_id").val(id);

    $("#entp_name").val(name);

}

子页面:

function getReturnValue(select_id,select_name){

    if(window.ActiveXObject){ //IE

        window.returnValue = {

                id : select_id,

                name :     select_name    

                } ;

        window.close();

    }else{ //非IE

        if(window.opener) {

            window.opener.setValue(select_id,select_name) ;

        }

        window.close();

    }

}

 

 

你可能感兴趣的:(js)