前端父子页面传值以及layer的传值

本文介绍了前端中父子页面间以及使用layer弹窗时的数据传递方法,包括父页面获取子页面元素、调用子页面方法,子页面获取父页面元素、调用父页面方法,以及layer弹出iframe层时的数据交互。示例代码详细展示了各种操作的实现方式。

父页面获取子页面元素

$("#iframeID").contents().find("#eleID")

示例代码:

father.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>父级页面</title>
  <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
  <style>
    .btn{display:inline-block;height:30px;line-height:30px;border-radius:5px;background:darkturquoise;padding:5px 12px;color:#fff;cursor:pointer;margin-right:20px;}
  </style>
</head>
<body>
<div>
  <span id="father_dataChange" class="btn">父向子传值</span>
</div>
<iframe id="iframe_dataChange" src="son.html" frameborder="0"></iframe>
<script>
  $("#father_dataChange").click(function () {
   $("#iframe_dataChange").contents().find("#son_dataChange").html("我是父页面传过来的值……")
  })
</script>
</body>
</html>

son.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>子级页面</title>
  <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
</head>
<body>
<div id="son_dataChange">我是子页面内容,点击“父向子传值”按钮我改变</div>
</body>
</html>

父页面调用子页面方法

格式:

$("#iframeID")[0].contentWindow.fun()

参数:fun()为子页面的函数

注意:$("#iframeID")[0]后面这个[0]必须要,亲测,删除就报错了,其原因是contentWindow是原生js的方法,所以用.eq(0)都不行。

示例代码:

father.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>父级页面</title>
  <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
  <style>
    .btn{display:inline-block;height:30px;line-height:30px;border-radius:5px;background:darkturquoise;padding:5px 12px;color:#fff;cursor:pointer;margin-right:2
### 使用 `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('这是要输的消息'); ``` 这种方法不仅限定了接口形式还便于维护和扩展应用逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值