window.open实现:javascript父子窗体间数据传递
6 浏览量
更新于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()`的参数传递和子页面的事件监听机制。通过组合使用,可以实现两个页面之间的数据交换,以便实现特定的功能,如内容管理中的选择与筛选。
2010-10-22 上传
2009-08-03 上传
2020-10-26 上传
2020-10-27 上传
2011-07-08 上传
2020-10-27 上传
2022-01-14 上传
2020-10-26 上传
2008-10-26 上传
weixin_38720256
- 粉丝: 4
- 资源: 947
最新资源
- From Data Mining to Knowledge Discovery in Database
- developement projects for microsoft office sharepoint server 2007 and windows sharepoint services version 3.0
- C# 语言 规范1.2
- 银行家算法课程设计 源码(记事本)
- c++笔试面试宝典2009版
- 系统架构设计师考试大纲2009
- 数据库课程设计选题.
- spring-framework-reference.pdf
- 元器件封装大全,doc
- JSP技术手册JSP技术手册,详细全面介绍了JSP的基础和高端技术
- AT89C2051管脚图引脚图中文资料
- 全国医学博士入学考生统考英语试题2001
- 2008年下半年全国软件设计师上午试题,好资源
- 电力系统稳态分析试题
- WebWork In Action
- 有效无痛苦的代码评审