最近制作一个大数据展示页面,需要嵌套第三方html,并进行相应的交互。
如下图:

其中A页面需要与第三方iframe进行交互,同时iframe选择公司或者园区时会回显到树选择器中。

先上解决办法

1,利用iframe进行父子页面通信,相互调用父子页面中的方法。(同源)
首先,我在react17中的index.js中把第三方需要调用我的方法挂载到window中

// 与3d交互的文件
import {webGl_web_iconClick} from '../src/http/webgl_web_iconClick'
window.webGl_web_iconClick=webGl_web_iconClick;

webgl_web_iconClick.js文件

export function webGl_web_iconClick(val) {alert('我是父组件中的方法:'+val);}

我们再创建一个html文件,作为传参调试的案例child(这个就是我们要嵌套的页面)

<!DOCTYPE html>
<html lang="zh-CN" ><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body><div class="content"><button onclick="btnClick()">子页面按钮</button>    </div>
</body>
<script>function btnClick(){//调用父页面的方法parent.window.webGl_web_iconClick('我是子页面的参数');}window.frames.childFun=function(val){alert('我是子页面的方法!:'+val);}
</script>
</html>

在父页面来调用子页面的方法

   // 调用子组件的方法并传参useChildFun(){window.frames.iframe.childFun('我是父组件的参数!');}

render函数中新建一个dom来触发这个事件

<div onClick={this.useChildFun}>调用子页面的方法</div>

好嘞,俺们来看看效果
在这里插入图片描述


看提示框,我们的方法已经调用了,并且参数也已经传成功了!

如何搭建同源开发环境?

这个时候我借用了php的小皮,点击下载安装。
1,启用数据库跟服务器

2,创建网站节点并配置映射地址

3,将iframe的html与react打包的build文件放同一个文件夹

通过地址访问

react项目中iframe地址

这样我们就搭建好了同源开发环境,只是要调试的时候得不断得打包,会比较麻烦。

这是本程序汪开发过程中遇到得一些问题,希望对各位同学能起到一些借鉴作用

react17同源iframe父子页面相互调用方法相关推荐

  1. JS iframe父子页面元素调用方法 window parent top 解释

    父窗口调用子窗口 var hasMore = parent.document.getElementByIdx_x_x_x("hasMore").value; 子窗口调用父窗口 do ...

  2. iframe父页面子页面相互调用方法

    父页面寻找子页面元素: window.frames["iframeName"].document.getElementsByClassName('div')[0] $(docume ...

  3. iframe 父子页面相互访问,iframe属性、安全问题

    iframe是html标签,具有一般标签的属性: width iframe的高度 height iframe的宽度 src iframe里面加载的页面url name 可以通过window.frame ...

  4. js取iframe 上级页面_原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法...

    用原生js在父页面获取iframe子页面的元素,以及在子页面获取父页面元素,这是平时经常会用到的方法,这里写一个例子来总结下: 1.父页面(demo.html),在父页面修改子页面div的背景色为灰色 ...

  5. iframe父子页面间通信总结

    随着网页结构的复杂化,页面内嵌frame越来越常见,但不管是作为内容页来显示,还是作为组件模块嵌入,都有父子页面间通信的需求可能,因此为了更好的实现需求就必须了解父子页面间的通信. iframe子页面 ...

  6. 上传图片至服务器,写入到数据库Blob字段中,以及从数据库读取Blob信息(iframe父子页面传值)(1)

    最近做了个用户维护功能,涉及到照片的操作. 照片是存到数据库oracle中的Blob字段中. 难点有两个: 1,图片的上传:2,Blob字段的读取. 先说图片的上传吧, 我使用common-fileu ...

  7. layui如何获取父节点的父节点_layui框架中layer父子页面交互的方法分析

    本文实例讲述了layui框架中layer父子页面交互的方法.分享给大家供大家参考,具体如下: layer是一款近年来备受青睐的web弹层组件,官网地址是:http://layer.layui.com/ ...

  8. 原生实现C#与Lua相互调用方法

    原生实现C#与Lua相互调用方法(Unity3D可用) Lua是一种很好的扩展性语言,Lua解释器被设计成一个很容易嵌入到宿主程序的库,下面这篇文章主要给大家介绍了关于原生实现C#与Lua相互调用方法 ...

  9. maven项目多模块相互调用方法

    maven项目多模块相互调用方法 问题背景 解决方法 方法1 方法2 问题背景 maven项目包括多个子模块,类似下图: 现在[web]模块某个类想要调用[service]模块的某个类的某个方法. 如 ...

最新文章

  1. EVA6400 Preferred path/mode
  2. 花最少的钱,训超6的机器人:谷歌大脑推出机器人强化学习平台,硬件代码全开源...
  3. OEMAddressTable介绍
  4. 19-7-14 学习笔记
  5. svpwm矢量控制电机相电压波形_如何深入理解SVPWM?
  6. QT消息/事件循环机制与多线程的关系
  7. python之质数判断
  8. Windows下编译安装kafka管理工具 kafka-manager (详细)
  9. php环境配置详细教程,图文教程:php环境全部配置
  10. 打印101~200之间的素数
  11. chrome F12开发者工具 (二)preview 与response的区别
  12. Android几种定时任务实现方式汇总
  13. 对26个英文字母进行huffman编码
  14. 手机cpu性能天梯图2022
  15. FPGA Implementation of BPSK Modulator and Demodulator
  16. 嵌入式RTOS的 任务栈 和 系统栈
  17. python的实验报告大一心理_python的期末实验报告
  18. drools快速入门:简介、语法和结构
  19. c#多文档文本编辑器
  20. %3c韩非子%3e语言研究pdf,韩非子王先慎.pdf

热门文章

  1. 合理用药基础知识-普及篇
  2. 计算机应用基础教师带教方案,论文实施方案范文
  3. win11如何修改ip地址
  4. JavaScript实现触及鼠标显示文字功能
  5. 蜂花以“穷”出圈,国货营销失去想象力了吗?
  6. 园区网核心交换机S7706异常重启导致无线网络故障
  7. 华为3Com\桌面型交换机\Aolynk S1008A
  8. 服务器常用端口号总结
  9. 【云原生之Docker实战】使用docker部署IT资产管理系统GLPI
  10. IOS6 IOS7 Mapkit draw Rout(地图划线)