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(); } }