window.open实现:javascript父子窗体间数据传递
102 浏览量
更新于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()`的参数传递和子页面的事件监听机制。通过组合使用,可以实现两个页面之间的数据交换,以便实现特定的功能,如内容管理中的选择与筛选。
352 浏览量
2009-08-03 上传
164 浏览量
2020-10-27 上传
200 浏览量
2020-10-27 上传
2022-01-14 上传
1938 浏览量
2008-10-26 上传

weixin_38720256
- 粉丝: 4
最新资源
- 革新操作体验:无需最小化按钮的窗口快速最小化工具
- VFP9编程实现EXCEL操作辅助软件的使用指南
- Apache CXF 2.2.9版本特性及资源下载指南
- Android黄金矿工游戏核心逻辑揭秘
- SQLyog企业版激活方法及文件结构解析
- PHP Flash投票系统源码及学习项目资源v1.2
- lhgDialog-4.2.0:轻量级且美观的弹窗组件,多皮肤支持
- ReactiveMaps:React组件库实现地图实时更新功能
- U盘硬件设计全方位学习资料
- Codice:一站式在线笔记与任务管理解决方案
- MyBatis自动生成POJO和Mapper工具类的介绍与应用
- 学生选课系统设计模版与概要设计指南
- radiusmanager 3.9.0 中文包发布
- 7LOG v1.0 正式版:多元技术项目源码包
- Newtonsoft.Json.dll 6.0版本:序列化与反序列化新突破
- Android实现SQLite数据库高效分页加载技巧