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的兼容性问题。
转载请以链接形式标明本文地址!本文地址:https://www.xb02.com/article/182