首页 > 其他分享 >iframe父子页面通信相互调用传递参数多个postMessage

iframe父子页面通信相互调用传递参数多个postMessage

时间:2023-12-13 12:32:32浏览次数:43  
标签:postMessage function 调用 iframe message data event 页面


效果

iframe父子页面通信相互调用传递参数多个postMessage_发送消息

如何运行

iframe父子页面通信相互调用传递参数多个postMessage_发送消息_02

父页面代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <h1>父亲-页面</h1>
  <iframe src="./b.html" width="500" height="300" id="topNav"></iframe>
  <script>
    function parentEvent(a) {
      alert("父亲被儿子调用"+JSON.stringify(a));
    }
    // 监听消息
    window.addEventListener("message", receiveMessage, false);
    function receiveMessage(event) {
      debugger
      if (event.data.event_id === "my_cors_message") {
        console.log('event.data',event.data);
        parentEvent(event.data); // 触发父页面事件
      }
    }
    // 参考https://cloud.tencent.com/developer/ask/sof/101133167
    // 原文链接:
  </script>
</body>

</html>

子页面代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <h2>我是儿子页面--kkk</h2>
  <button onclick="triggerParentEvent()">方法1:调用父亲页面</button>
  <script>
    function triggerParentEvent() {
      debugger
      const parentWindow = window.parent;
      parentWindow.postMessage({
        event_id: 'my_cors_message',
        data: { // 这里可以传递多个参数给父页面
          v1: 'value1',
          v2: 'value2'
        }
      },
        ['http://localhost:80','http://localhost:89'] // 这里填入域名,能指定给哪个网址发送信息
      ); // 发送消息
    }
  </script>
</body>
</html>


标签:postMessage,function,调用,iframe,message,data,event,页面
From: https://blog.51cto.com/u_15358766/8800972

相关文章

  • 页面迁移 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/page_migration.html#page-migration页面迁移页面迁移允许在NUMA系统中的节点之间移动页面的物理位置,同时进程正在运行。这意味着进程看到的虚拟地址不会改变。但是,系统重新排列这些页面的物理位置。另请参阅异构内存管理(HMM),用于......
  • 空闲页面报告 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/free_page_reporting.html空闲页面报告空闲页面报告是一种API,设备可以通过该API注册以接收当前系统未使用的页面列表。这在虚拟化的情况下非常有用,因为虚拟机可以利用这些数据通知hypervisor它不再使用内存中的某些页面。对于驱动程......
  • 空闲页面跟踪 (翻译 by chatgpt)
    原文:https://www.kernel.org/doc/html/latest/admin-guide/mm/idle_page_tracking.html空闲页面跟踪动机空闲页面跟踪功能允许跟踪工作负载访问的内存页面和空闲页面。这些信息对于估算工作负载的工作集大小很有用,进而可以在配置工作负载参数、设置内存cgroup限制或决定在计算......
  • radio单选按钮选中时当前页面实现跳转
    下面是一个单选的span标签:<spanstyle="width:500px;"><inputtype="radio"name="chart"value="overAll"checked="checked"/>搜狗<inputtype="radio"name="chart"value="in......
  • 【Python爬虫】爬虫框架Scrapy初使用_爬取4399游戏页面数据
    Scrapy简介Scrapy是一个用于爬取和提取数据的开源web抓取框架。它提供了一个强大的机制,让开发者可以轻松地创建和管理爬虫程序,以从网站上自动提取结构化的数据。以下是Scrapy的一些主要特点和优势:强大灵活的爬取能力:Scrapy具有高度可配置的请求处理和数据提取功能。它可以轻......
  • Python爬虫无法获取页面内容的常见原因及解决方法
     在使用Python进行网页爬取时,有时会遇到无法获取页面内容的情况。本文将探讨造成这种情况的常见原因,并提供一些解决方法,帮助您顺利进行网页内容的爬取。 当我们使用Python进行网页爬取时,有时会遇到无法获取页面内容的情况。以下是可能导致这种情况的常见原因: 1.请求错误: 在构......
  • 什么是前端 Web 应用响应式页面布局里的 Breakpoint 概念
    在Web前端开发中,响应式设计是一个非常重要的概念,它允许网页UI根据不同的设备屏幕大小进行适当的调整以优化用户体验。在这种设计中,breakpoint是一个关键的概念。我们可以把breakpoint理解为屏幕宽度的一种临界点,当屏幕宽度达到这个点时,我们会调整页面布局以适应这个新的屏幕......
  • 每月免费调用1000次API调用:实现PDF转档、页面编辑、OCR
    每月1000次免费PDFAPI调用:使用ComPDFKitAPI充分发挥您PDF转换的全部潜力 您是否在寻找无需前期投资即可提升软件集成能力的途径?再也不用找了!我们先进的API为您的项目提供所需的强大功能和易用性。注册并开始免费调用API。 我们提供每月1000次的免费API调用!通过这每月10......
  • 鸿蒙Watch 页面跳转
    新建页面config.json回自动注册添加跳转<buttontype="capsule"onclick="toStatusMonitor">状态检测</button>写跳转方法importrouterfrom'@system.router';exportdefault{data:{},onInit(){},onShow(){},......
  • activemq启动成功但web管理页面却无法访问
    前提:在linux启动activemq成功!本地能ping通linux处理方案:确定防火墙是否关闭,有两种处理方案:第一种-关闭防火墙;第二种-暴漏8161和61616两个端口netstat-lnpt查看8161和61616端口注意:要查看8161端口前面的显示的ip是什么若是出现上面的情况,则修改配置文件即可:vimconf/jetty.xml,找......