window.showModalDialog在chrome浏览器下returnValue为undefined的问题解决,window.returnValue的浏览器兼容性处理

在父窗体通过window.showModalDialog方法弹出模态窗体后,可在子窗体中通过对window.returnValue进行赋值,使得父窗体得到子窗体传递的值。可是在chrome浏览器下,父窗体中得到的returnValue为undefined,无法正确获取子窗体传递的值。

可通过对window.opener.returnValue进行赋值的方式,来解决window.returnValue在chrome浏览器下的兼容问题,解决方法如下:

父窗体的js代码:

//显示模态对话框

var returnValue = window.showModalDialog("dialog.html", window, "dialogWidth=800px;dialogHeight=500px;");

 

//chrome浏览器下需要调用window.returnValue进行赋值

if (returnValue == undefined) {

    returnValue = window.returnValue;

}

 

//输出返回值

alert(returnValue);

子窗体的js代码:

//chrome浏览器下window.opener不为undefined,需要调用window.opener.returnValue进行赋值

if (window.opener != undefined) {

    window.opener.returnValue = "chrome";

}

else {

    window.returnValue = "not chrome";

}

window.close();

通过以上的方式进行处理后,即可解决window.showModalDialog在chrome浏览器下returnValue为undefined的兼容性问题。

发表评论

发表评论