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

你可能感兴趣的:(window.showModalDialog在谷歌浏览器下无法取得返回值的解决办法。)