从子页面获取父页面的值

13 篇文章 0 订阅
11 篇文章 0 订阅

这里页面间的传值有很多种方法,前两种方法是页面直接传值后不能同时保持2个页面都还存在,后面两种方法是从父页面弹出子页面2个窗口都能保持:

1、使用超链接通过URL传值或是Response.Redirect方法从一个页面到另一个页面

将要传的数据写在URL后面跟随传值,这样数据不安全而且传值长度也有范围,大数据无法传

2、用Server.transfer(URL)方法实现页面的跳转

Server.transfer()与Response.Redirect最大的不同就是,Response.Redirect实际上就像在地址栏里面重新输入了要跳转页面的地址,所以他是不保存之前页面的信息的。但是Server.transfer()完全不同,Server.transfer()就是像是在服务器端重新显示你要转到的页面,但此前页面的信息都还保存在服务器。因此在新的页面上你仍可以得到之前页面的值。

3、使用window.open(url)打开一个子窗口

想要获得父窗口的对象很简单,使用window.opener.varName就能获取父窗口的对象

注意:这样只能获取父页面中的全局变量,但是局部变量就不行了

还可以使用window.opener.document.getElementById("id");

4、使用window.showModalDialog()方法弹出一个子窗口

想要获得父窗口中的值,这里我们就要在showModalDialog()中传入window参数,然后在子窗口中获取这个参数,这样就可以操作父窗口中的数据了。

父窗口中的js代码:

<script type="text/javascript">

   function  fwindow(){

window.showModalDialog("son.jsp",window);   //son.jsp就是我们的子窗口页面

}

</script>

子窗口中的代码:

<script  type="text/javascript">

function swindwo(){

var data = window.parent.document.getElementById("test").value;  //test是父窗口中的一个组件id

var data =window.opener.document.getElementById("test").value;   //另外的写法

alert(data);

}

</script>

注意:使用这种方法,在不同浏览器对上面的语句支持不同,在使用window.parent.document.getElementById或者window.opener.document.getElementById,在IE中都会报错,在火狐中是不会报错的,但是火狐只能通过window.opener取到对象

当然你也可以通过在window.showModalDialog()中的URL后面直接传值,从而使子页面获取到父页面对象,写法如同普通url传值。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xq30397022

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值