window.showModalDialog在谷歌浏览器下无法取得返回值的解决办法。
//父页面弹出对话框代码
var result = window.showModalDialog('A.aspx', null, 'dialogWidth:600px;dialogHeight:500px;center:yes;help:no;resizable:no;status:no'); //打开模态子窗体,并获取返回值
if (result == null) { if (result == undefined) { result = window.returnValue; } if (result == null) { alert("没有获取到返回值信息。"); return; } }
//子页面返回值的方法,子页面的head里面加上<base target="_self" />防止提交的时候弹出新窗口。
$().ready(function () { if ($("#h_return").val().length > 10) { if (window.opener != undefined) {//window.opener的值在谷歌浏览器下面不为空,在IE/火狐下面是未定义,由此判断是否是谷歌浏览器 window.opener.returnValue = $("#h_return").val();//谷歌浏览器下给返回值赋值的方法 window.opener.close(); //这里必须关闭一次,否则执行下面的window.close()无法关闭弹出窗口,因为谷歌浏览器下弹出窗口是个新的window } else { window.returnValue = $("#h_return").val(); //这种赋值方法兼容IE/火狐,但不支持谷歌浏览器 } window.close(); } });