关于父子页面的传值

本文介绍了两种在网页开发中实现父子页面间传值的方法:非模式状态与模式状态。详细解释了如何通过 JavaScript 实现这两种传值方式,并提供了具体的代码示例。

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

在web开发过程中经常会遇到父子页面之间互相传值的情况,今天我也遇到这种情况,有时间就来记下,以免今后忘了。

 

父子页面互相传值我知道的有两种做法

一、非模式状态 这种状态下打开子页面后还可以继续操作父页面,这样有时候会有一些弊端。具体做法如下:

在父页面:

var width = window.screen.width * 0.5;
var height = window.screen.height * 0.3;
var top = (window.screen.width - width)/2;
var left = (window.screen.height - height)/2;
var args = "height="+height+",width="+width+",top="+top+",left="+left;
var link = "子页面";
window.open(link,"_blank",args+",toolbar=no,location=no,resizable=yes,status=no");

子页面往父页面传值:

window.opener.document.getElementsByName("name0].value=xx;

window.opener即可得到父页面对象

 

二、在模式状态下,这种状态下打开子页面后不能操作父页面,具体做法如下:

在父页面:

 var link = "子页面";
            window.showModalDialog(link,window,"dialogWidth:490px;dialogHeight:300px;center:yes;help:no;resizable:no;status:no");

在子页面:

var   pwin = window.dialogArguments; 取得父页面对象

pwin .document.getElementsByName("name0].value=xx;给父页面对象附值

 

 

 

 

### 使用 `layer.open` 实现父子页面 #### 获取父页面到子页面 当使用 `layer.open` 打开一个新的弹出层时,可以通过 JavaScript 访问父页面中的 DOM 元素来获取数据。具体来说,在子页面中可以利用如下方式读取来自父页面的数据: ```javascript var subcode = parent.$("#sub").val(); // 通过parent访问父页面jQuery对象并取得ID为'sub'元素的value属性[^1] ``` 这段代码展示了如何在一个由 `layer.open` 创建的新窗口内执行脚本以获得其上级(即打开它的那个)网页上的特定输入框的内容。 #### 子页面父页面 对于从子页面返回信息给父页面的情况,则可以在子页面里操作父页面DOM结构或调用定义好的函数来进行通信。下面是一个例子说明怎样修改父页面上某个具有唯一标识符 (`father_dataChange`) 的 div 内容: ```javascript $("#father_dataChange", window.parent.document).html("变咯……"); // 修改父页面指定区域的文字显示[^3] ``` 此行命令会找到当前文档上下文中名为 "father_dataChange" 的 HTML 节点,并将其内部HTML设置成新的字符串内容 `"变咯……"` ,从而实现了子页面父页面的信息反馈功能。 另外一种更灵活的方式是在子页面触发事件或者直接调用父页面的方法来完成交互过程。比如在父亲页面预先设定好接收参数的方法: ```javascript // father.html 中预设方法 function receiveDataFromChild(data){ alert('收到子页面来消息:' + data); } ``` 而在子页面则可以直接这样调用来发送信息回去: ```javascript parent.receiveDataFromChild('这是要输的消息'); ``` 这种方法不仅限定了接口形式还便于维护和扩展应用逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值