JavaScript中window.opener的使用与注意事项
作者:闭包旅人时间:2026-10-27 21:17:12浏览:532
本文详解JavaScript中window.opener对象的作用,即子窗口如何引用并操作父窗口。通过具体代码示例展示如何获取父页面元素值,并分析调用前需进行null判断以避免报错。同时涵盖支付成功后关闭子窗口并刷新父页面的典型应用场景,确保跨窗口交互的稳定性。
window.opener的基本概念与空值检查
在JavaScript中,window.opener属性仅作为弹出窗口对其父窗口(即调用open方法的窗口)的引用。例如,当在a.html中通过按钮点击等方式使用window.open打开b.html时,b.html即可通过window.opener(可简写为opener)来访问a.html,包括其document等对象,从而操作a.html的内容。如果该引用失败,opener将返回null。因此,在调用opener相关对象前,必须判断其是否为null,否则可能引发“对象为空或不存在”的JavaScript错误。
示例代码:
<html>
<body>
<form name=form1>
<input type=text name=inpu >
<input type=button onclick="javascript:window.open('back2opener.html?toname=opener.form1.inpu');">
</form>
</body>
</html>back2opener.html
通过opener操作父页面元素的示例
示例代码:
<html>
<body>
<form name=form1>
<input type=text name=inpu >
<a class=under href=# onclick="{opener.document.form1.inpu.value+='孙超,';}">添加</a>
</form>
</body>
</html>JS代码:
支付成功后关闭子窗口并刷新父页面
window.open();
而在支付成功后,通常需要关闭支付平台的成功界面,并在客户端加载支付成功页面。对应的JavaScript代码如下:
window.opener.location.href=url;window.close();
作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
