因系统要兼容原IE已使用的关闭方法,经调试测得,需对window.dialogArguments进行再较验,不然易出问题。
返回值接收的,只需在原有IE的接收模式下,多较验一下opener就可以了,如下:
页面";
var ret = window.showModalDialog(url,window,"dialogWidth=400px;dialogHeight=500px;status=no;help=no;scroll=yes;resizable=yes;");
if (typeof (ret) == "undefined") {
ret = window.ReturnValue;
}
if (ret) {
document.getElementById("hidDeptCode2").value = ret;
document.getElementById("btnDeptCodeAdd").click();
}
return false;
}
JS模态窗口返回值兼容问题完美解决方法
1、打开弹出窗口时把 window 作为第二个参数传入。
if (typeof (result) == 'undefined') {
result = window.ReturnValue;
}
return result;
2、在弹出窗口中,执行如下JS,以接收传入的window
if (window.opener && window.opener != null)
window.opener.ReturnValue = vals;
window.close();
原理探讨:
chrome下,标准方法,在弹出页面不回发的情况下,是可以返回值的。 有回发则不能正常返回值。此方法可以解决。
FF未详细测试,应该问题不大。
以上这篇JS模态窗口返回值兼容问题的完美解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。