使用window.opener完成两个页面参数传递

本文介绍了如何使用JavaScript的window.opener属性在父页面和子页面之间传递参数。示例展示了一个父页面(包含一个input字段和打开子页面的按钮)和一个子页面(包含一个关闭自身并调用父页面方法的按钮)。在IE浏览器中,允许操作后可正常工作,而在谷歌浏览器中,由于安全机制,本地文件环境下opener属性可能不生效,但在服务器环境下运行正常。

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

父页面:

<html>
<body>


<script type="text/javascript">
function demo(){
window.open("b.html");
}
function de(n){
document.getElementById('a').value = n;
}
</script>
<input type="text" name="a" id="a">
<input type="submit" name="submit" value="submit" οnclick="demo()">
</body>

</html>


子页面

子页面调用父页面的de方法,同时将参数传递给de方法中

<html>
<body>


<script type="text/javascript">
function demo2(){
// window.opener.document.all.a.value = "liweixu";
window.opener.de("liweixu");
window.close();
}
</script>
<input type="submit" name="submit" value="submit2" οnclick="demo2()">
</body>

</html>

注:

问题:谷歌浏览器在子页面上点击选择按钮毫无反应,IE上需要通过允许可以实现

原因:是opener属性的缘故,但不是谷歌浏览器的兼容性问题,首先要知道js安全机制原则上是不能访问本地文件的,并且谷歌浏览器的安全设置级别比较高,认定你在"本地"应用opener属性的时候是通过js打开本地文件,所以操作被截止.

但是,在实际开发环境中是不会产生这个问题的,因为当把页面文件部署到服务器上,通过谷歌浏览器输入  localhost/******   或者   127.0.0.1/******  访问该页面,是没有毛病的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值