iframe的父子页面通信

简介: 【10月更文挑战第2天】

在 Web 开发中,iframe(内联框架)常用于在一个网页中嵌入另一个网页,实现父子页面之间的通信可以通过以下几种方式:

一、window.name 属性

  1. 父页面先将数据赋值给自身的window.name属性,然后跳转到iframe页面。
    ```html <!DOCTYPE html>








2. `iframe`页面通过读取自身的`window.name`属性获取数据。
```html
<!-- iframe 页面 -->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>iframe 页面</title>
</head>

<body>
    <script>
        window.onload = function () {
            var parentData = window.name;
            console.log(parentData);
        }
    </script>
</body>

</html>

二、postMessage 方法

这是一种跨域通信的标准方式,适用于不同源的iframe之间通信,也可用于同源的iframe

  1. 父页面发送消息:
    ```html <!DOCTYPE html>








2. `iframe`页面接收消息并响应:
```html
<!-- iframe 页面 -->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>iframe 页面</title>
</head>

<body>
    <script>
        window.addEventListener('message', function (event) {
            if (event.data === '父页面发送的消息') {
                // 处理消息,这里可以发送回消息给父页面
                event.source.postMessage('iframe 响应的消息', event.origin);
            }
        });
    </script>
</body>

</html>

三、利用查询参数(适用于同源页面)

  1. 父页面在跳转到iframe页面时,通过查询参数传递数据:
    ```html <!DOCTYPE html>








2. `iframe`页面从查询参数中获取数据:
```html
<!-- iframe 页面 -->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>iframe 页面</title>
</head>

<body>
    <script>
        var searchParams = new URLSearchParams(window.location.search);
        var parentData = searchParams.get('data');
        console.log(parentData);
    </script>
</body>

</html>

以上就是几种常见的iframe父子页面通信的方式,在实际开发中可根据具体需求和场景选择合适的通信方法。

目录
相关文章
vscode 打开多个标签页
vscode 打开多个标签页
1270 0
element el-cascader动态编辑赋值后,不回显的解决方法(整理)
element el-cascader动态编辑赋值后,不回显的解决方法(整理)
|
12月前
|
人工智能 自然语言处理 机器人
向量化与嵌入模型:RAG系统背后的隐形英雄
传统搜索只懂字面不懂含义,向量化技术让AI真正理解语言。从日常类比到实际案例,揭秘为何向量化技术是RAG的灵魂,以及如何用最少的努力构建最聪明的AI应用。
1059 10
|
6月前
|
数据采集 SQL 人工智能
不会写代码,也能用AI做数据分析?手把手教你
本文介绍如何用AI(如ChatGPT或文心一言、通义千问等)零代码完成日常数据分析:上传Excel,用自然语言提问,即可自动清洗数据、发现异常、计算指标、生成图表与汇报文案,大幅提升运营、销售、产品等岗位的数据处理效率。
|
机器学习/深度学习 文字识别 监控
安全监控系统:技术架构与应用解析
该系统采用模块化设计,集成了行为识别、视频监控、人脸识别、危险区域检测、异常事件检测、日志追溯及消息推送等功能,并可选配OCR识别模块。基于深度学习与开源技术栈(如TensorFlow、OpenCV),系统具备高精度、低延迟特点,支持实时分析儿童行为、监测危险区域、识别异常事件,并将结果推送给教师或家长。同时兼容主流硬件,支持本地化推理与分布式处理,确保可靠性与扩展性,为幼儿园安全管理提供全面解决方案。
754 3
|
JavaScript
iframe的父子页面通信
iframe的父子页面通信
919 6
|
人工智能 搜索推荐 数据安全/隐私保护
AI矩阵获客系统开发部署策略
在竞争激烈的市场中,企业亟需高效获客工具。AI矩阵获客系统基于人工智能技术,通过大数据分析和智能匹配,精准定位目标客户,降低营销成本,提升转化率。其自动化营销功能可显著减轻人工负担。随着市场需求增长和技术成熟,开发该系统具备较高投资回报率。然而,企业在开发时需关注功能完善、隐私保护及法规遵循,以确保系统稳定性和竞争力。总体而言,AI矩阵获客系统值得投入资源开发,助力企业抢占市场先机。
|
JavaScript 调度
Vue3 使用 Event Bus
Vue3 使用 Event Bus
620 2
Element UI【实战范例】下拉选择 el-select 的 change 事件传入选中值+自定义参数
Element UI【实战范例】下拉选择 el-select 的 change 事件传入选中值+自定义参数
4279 1

热门文章

最新文章