模态窗口返回值给当前窗口页面

本文介绍了一种在当前页面弹出模态窗口后,如何将选择的参数通过window.returnValue方式返回到当前页面的方法。在尝试了window.parent.document.getElementById和window.dialogArguments未果后,作者发现window.showModalDialog()的returnValue属性可以成功实现这一需求。通过在模态窗口的submit函数中设置window.returnValue,并在弹出窗口的调用函数中接收,实现了参数的传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天项目中碰到一个问题,需要在当前窗口页面弹出模态窗口,提供选择框来选择相应的条件进行相应文件的导出。

于是需求模态窗口弹出后选择相应条件后将选择的参数返回到当前页面。尝试使用window.parent.docunment.getElpmentById

的方法获取当前页面的对象元素,结果无法获取。经思考后,因为是弹出的模态窗口,而不是采用Frame分块Jsp页面,所以

当前页面与弹出的模态窗口Jsp页面没有对应的父子关系。然后尝试使用window.dialogArguments想要获取当前页面的对象,

结果依然达不到要求。

由弹出模态窗口的方式window.showModalDialog()发现是一种变量,于是尝试使用window.returnValue的方式将参数返回,结果可以实现,问题得到解决。

代码片段如下:

当前页面弹出模态窗口的Js方法:

//导出前选择
function beforeExportFile2(){
//弹出模态窗口
var chooseWindow = new Object();
var result = window.showModalDialog(
"/jsp/cycx/cycx07/cycx07_dwcbygssbcymx_choose.jsp", chooseWindow,
"dialogHeight:200px,center:yes,status=no");//接收返回的参数
var dataType = $getById("dataType").value=result;
if(typeof(result)=="undefined"){
return;
}
}

模态窗口返回参数的js方法:

function submit(){
//参数:选择导出的数据类型
var flag = "";
var gszgxx = $getById("gszgxx");
var sbzgxx = $getById("sbzgxx");
var bxdzgxx = $getById("bxdzgxx");
if(gszgxx.checked==false&&sbzgxx.checked==false&&bxdzgxx.checked==false){
Css.Msg.alert("请选中至少一种数据!");
return;
}
if(gszgxx.checked==true){
flag+=gszgxx.value;
}
if(sbzgxx.checked==true){
flag+=sbzgxx.value;
}
if(bxdzgxx.checked==true){
flag+=bxdzgxx.value;
}
window.returnValue=flag;//返回参数
closeTab();
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值