window.open实现:javascript父子窗体间数据传递
101 浏览量
更新于2024-09-01
收藏 45KB PDF 举报
在JavaScript中,子窗体与父窗体之间的数据交互是常见的需求,特别是在内容管理和CMS系统中,如DedeCms等。通过`window.open()`函数可以创建一个新的窗口,并实现两个窗口之间的通信。以下是一种常用的方法,用于在父页面和子页面之间传递参数并获取选中的值。
**父页面(核心代码)**:
在这个示例中,有一个名为`SelectArcListA`的JavaScript函数,当用户点击“从已发布文档中选取”按钮时,会调用这个函数。该函数接收一个参数`fname`,通常表示需要传递给子页面的父页面变量。函数使用`window.open()`打开名为`content_select_list.asp`的子页面,并将`fname`和表单元素`form1.keyword.value`作为查询参数传递过去。这样,子页面可以根据这些参数进行相应的处理。
**子页面(核心代码)**:
子页面的JavaScript主要关注于处理接收到的参数和用户的选择。`getCheckboxItem()`函数的作用是获取所有被选中的文章ID。它遍历表单元素`form2.arcID`,检查哪些复选框被选中,并将选中的值拼接成一个字符串返回。此外,还有一个`selAll()`函数,用于全选或取消全选所有文章ID。
为了在子页面关闭时将选中的值传递回父页面,可以在子页面关闭时添加一个事件监听器,例如`onunload`或`beforeunload`,来执行类似这样的操作:
```javascript
window.onunload = function() {
var selectedValues = getCheckboxItem();
parent.window.parent.SelectArcListA(selectedValues); // 将选中的值传递回父页面
};
```
这种方式确保了子页面关闭时,父页面能够获取到子页面用户的选择。需要注意的是,由于浏览器的安全限制,这种方法可能在某些情况下(如用户直接关闭浏览器或按`Esc`键)无法传递数据。为了更可靠地实现数据交互,可以考虑使用POST请求或利用`localStorage`和`sessionStorage`来存储临时数据。
总结来说,JavaScript中的子窗体与父窗体相互传值主要依赖于`window.open()`的参数传递和子页面的事件监听机制。通过组合使用,可以实现两个页面之间的数据交换,以便实现特定的功能,如内容管理中的选择与筛选。
351 浏览量
2009-08-03 上传
2008-10-26 上传
121 浏览量
117 浏览量
122 浏览量
148 浏览量
150 浏览量
2023-07-22 上传
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
weixin_38720256
- 粉丝: 4
最新资源
- Paw实践2课程核心内容精讲
- 数学建模中Matlab源程序的应用
- Fedora14环境下的hello模块Linux驱动开发
- Java性能优化与监控:全面JVM和应用性能管理指南
- OBS多路推流插件0.2.5版支持多RTMP直播
- HipChat:开发团队优选的即时通讯工具
- React JS代码笔克隆实战指南
- Laravel环境管理神器:laravel-envloader功能解析
- Android购物车动画效果及代码分享
- 将FTP默认打开方式修改为资源管理器的方法
- 核主成分分析KPCA在Matlab中的应用与例程
- Java程序员必备:LeetCode算法题解与技巧
- 学生信息管理系统的简易实现
- MapMagic_World_Generator_1.9.4:Unity3D地图编辑插件
- C#编程实现压缩解压功能技巧详解
- Laravel封装SwiftAPI实现Minecraft Bukkit远程调用