js jquery windows父窗体向子窗体传值

今天项目出了一个问题,在计划管理-年度计划申请模块提交部门审核人的时候出现了 父窗体向子窗体传值传不过的情况,因为项目只针对IE 所以子窗体使用的是showModalDialog

以下是整个URI


标红部分是需要传入子窗体的值

showModalDialog(encodeURI("${pageContext.request.contextPath}/taskManage/taskManageDeptLeaderList.action?time="+new Date(),param),"scroll:no;;status:no;dialogWidth:500px;dialogHeight:300px;" );

下图为子窗体打开后的接值方式


已确知父窗体param数组存在值,在此出现了问题 子窗体接收不到父窗体传的值 

左右排查不知是什么问题 后来再次排查看了一下url 发现可能是encodeURI把param进行了编码 从而导致子窗体无法取到值

这里使用encodeURI的原因是因为高版本tomcat对url严格按照RFC 3986规范进行访问解析,而RFC 3986规范中定义了url中只允许英文字母(a-zA-Z)、数字(0-9)、- _ . ~  4个特殊字符以及所有保留字符(RFC 3986中指定了一下字符为保留字符:! * ‘ () ; : @ & = + $ , / ? # [ ] )。而我们在url中传入了time= new Date() 存在中文 所以解析不了因此必须使用encodeURI进行编码才可以

于是换成了以下这样

showModalDialog(encodeURI("${pageContext.request.contextPath}/taskManage/taskManageDeptLeaderList.action?time="+new Date()),param,"scroll:no;;status:no;dialogWidth:500px;dialogHeight:300px;" );

问题解决了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值