window.showmodaldialog在火狐和谷歌浏览器中获取不到返回值
父页面的一部分代码:varWindowStyle="dialogHeight:450px;dialogWidth:850px;status=no;center:yes;r...
父页面的一部分代码:
var WindowStyle = "dialogHeight:450px; dialogWidth:850px; status=no; center:yes; resizable:yes"; var url = "getJfysInfo.jsp?zclx=" + zclxidh + "&kplxbh=" + kplxbh + "&role=" + document.all.role.value; var retv = window.showModalDialog(url, window, WindowStyle);
子页面的一部分代码:
window.returnValue = document.all.retValue.value; top.close();//window.close()在火狐和谷歌中也关闭不了,所以暂时改用top了。
子页面:window.returnValue的值都可以获取到。但是父页面,ie可以,火狐和谷歌就获取不到 window.showModalDialog的返回值了。尝试了好多方法,top,parent都不行,父页面window.returnValue 也都是空,求大神救命啊!!!! 展开
var WindowStyle = "dialogHeight:450px; dialogWidth:850px; status=no; center:yes; resizable:yes"; var url = "getJfysInfo.jsp?zclx=" + zclxidh + "&kplxbh=" + kplxbh + "&role=" + document.all.role.value; var retv = window.showModalDialog(url, window, WindowStyle);
子页面的一部分代码:
window.returnValue = document.all.retValue.value; top.close();//window.close()在火狐和谷歌中也关闭不了,所以暂时改用top了。
子页面:window.returnValue的值都可以获取到。但是父页面,ie可以,火狐和谷歌就获取不到 window.showModalDialog的返回值了。尝试了好多方法,top,parent都不行,父页面window.returnValue 也都是空,求大神救命啊!!!! 展开
1个回答
展开全部
您好!很高兴为您答疑!
父页面:
function openwindows(){var obj = new Object(); //打开模态子窗体,并获取返回值 var retval = window.showModalDialog("ordervideo.jsp?rderIds="+"0010,0020,0030",obj,"dialogWidth=500px;dialogHeight=500px"); //for chrome if(retval == undefined) { retval = window.returnValue; } alert(retval); }
子页面:
function onload(){//for chrome if(window.opener != undefined) { //window.opener的值在谷歌浏览器下面不为空,在IE/火狐下面是未定义,由此判断是否是谷歌浏览器 window.opener.returnValue = flag; //谷歌浏览器下给返回值赋值的方法window.opener.close(); //这里必须关闭一次,否则执行下面的window.close()无法关闭弹出窗口,因为谷歌浏览器下弹出窗口是个新的window } else { window.returnValue=flag; //这种赋值方法兼容IE/火狐,但不支持谷歌浏览器 } window.close(); }
您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
父页面:
function openwindows(){var obj = new Object(); //打开模态子窗体,并获取返回值 var retval = window.showModalDialog("ordervideo.jsp?rderIds="+"0010,0020,0030",obj,"dialogWidth=500px;dialogHeight=500px"); //for chrome if(retval == undefined) { retval = window.returnValue; } alert(retval); }
子页面:
function onload(){//for chrome if(window.opener != undefined) { //window.opener的值在谷歌浏览器下面不为空,在IE/火狐下面是未定义,由此判断是否是谷歌浏览器 window.opener.returnValue = flag; //谷歌浏览器下给返回值赋值的方法window.opener.close(); //这里必须关闭一次,否则执行下面的window.close()无法关闭弹出窗口,因为谷歌浏览器下弹出窗口是个新的window } else { window.returnValue=flag; //这种赋值方法兼容IE/火狐,但不支持谷歌浏览器 } window.close(); }
您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
更多追问追答
追问
你好,感谢你的回答。刚才试了一下。子页面window.opener != undefined可以区分浏览器,但是反而获取不到返回值了,父页面的判断retval == undefined。ie和火狐都可以进去,没有起到区分浏览器的作用。
追答
使用Firebug检查下?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询