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父子页面通信的方式,在实际开发中可根据具体需求和场景选择合适的通信方法。

目录
相关文章
|
运维 Java Nacos
nacos常见问题之读取不到配置文件如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
7212 2
|
人工智能 安全 计算机视觉
这款AI已经这么牛了!输入画面关键词就能找到相关画面视频片段素材
大家是否有过这样的经历?看到一个很棒的视频,却只想要其中几秒钟的片段,却要花费很长时间来搜索想要的片段。
3474 0
这款AI已经这么牛了!输入画面关键词就能找到相关画面视频片段素材
|
缓存 JavaScript 前端开发
MSW:可用于浏览器和测试的Mock服务
在 VUE 项目开发中,大部分需求会涉及API数据交互,为了保证项目效率,前端通常需要一个 API 服务器来确保前端开发进度,这就是所谓的 Mock 服务。网络上有许多类型的 Mock 工具,使用不同的方法解决同一个问题。
1310 0
MSW:可用于浏览器和测试的Mock服务
|
JavaScript
iframe的父子页面通信
iframe的父子页面通信
408 6
|
7月前
|
JSON 数据挖掘 API
京东API接口最新指南:店铺所有商品接口的接入与使用
本文介绍京东店铺商品数据接口的应用与功能。通过该接口,商家可自动化获取店铺内所有商品的详细信息,包括基本信息、销售数据及库存状态等,为营销策略制定提供数据支持。此接口采用HTTP请求(GET/POST),需携带店铺ID和授权令牌等参数,返回JSON格式数据,便于解析处理。这对于电商运营、数据分析及竞品研究具有重要价值。
|
11月前
|
机器学习/深度学习 数据可视化 大数据
机器学习与大数据分析的结合:智能决策的新引擎
机器学习与大数据分析的结合:智能决策的新引擎
617 15
WK
|
存储 移动开发 API
哪些功能是HTML5的新增功能
HTML5作为HTML的最新版本,引入了许多新的功能和特性,这些功能极大地丰富了网页的表现力和交互性。以下是HTML5的一些新增功能:
WK
328 2
|
Cloud Native 安全 Java
Micronaut对决Spring Boot:谁是微服务领域的王者?揭秘两者优劣,选对框架至关重要!
【9月更文挑战第5天】近年来,微服务架构备受关注,Micronaut和Spring Boot成为热门选择。Micronaut由OCI开发,基于注解的依赖注入,内置多种特性,轻量级且启动迅速;Spring Boot则简化了Spring应用开发,拥有丰富的生态支持。选择框架需考虑项目需求、团队经验、性能要求及社区支持等因素。希望本文能帮助您选择合适的微服务框架,助力您的软件开发项目取得成功!
624 2
|
XML Java 数据格式
异步编程 - 08 Spring框架中的异步执行_TaskExecutor接口和@Async应用篇
异步编程 - 08 Spring框架中的异步执行_TaskExecutor接口和@Async应用篇
670 0