当前位置: 首页 > news >正文

前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信

前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信
1,父子系统之间的通信问题
父系统给子系统传值可通过postMessage方式进行通信,postMessage(“传递的数据”,url)

1.1 父系统给子系统的传值

let iframe = document.getElementById('childFrame');
let o1 = {name:'zs',sex:'男'}
let o2 = JSON.stringify(o1);
iframe.contentWindow.postMessage(o2, 子系统url地址);

1.2 子系统获取系父统的传值

    window.addEventListener("message", (event)=>{  console.log("通过iframe的postMessage传参了--",event.data)},false); 

event.data就是传递过来的数据

1.3 子系统给父系统发送数据

 window.parent.postMessage('传递的数据', url);

1.4 获取子系统发送的数据

window.addEventListener('message',function(e){console.log("获取子页面传递的数据====",e)console.log(e.data)//处理自己的逻辑})

2,js页面添加鼠标监听等事件案例

2.1 嵌入的第三方系统案例代码如下:

  ["click", "mouseup", "mousemove", "keyup", "touchend"].forEach(item => {window.addEventListener(item,() => {this.debounceMove();},false);});
throttle是js的节流函数,请第三方系统使用自己的节流函数。
 methods: {debounceMove: throttle(function () {if(window.parent){window.parent.postMessage('传递的数据', 'url地址');}}, 1000),},

2.2 父系统获取第三方系统(子系统)的消息

let that = this;window.addEventListener('message',function(e){console.log("获取子页面传递的数据====",e)console.log(e.data)if(e.data == 'move'){//结束倒计时that.$bus.$emit('setCountDownTime',60);}})

2.3 节流函数的解释:
在某个时间内(比如500ms),某个函数只能被触发一次。

节流的应用场景
(1)监听页面的滚动事件;
(2)鼠标移动事件;
(3)用户频繁点击按钮操作;
(4)游戏中的一些设计;
总之,依然是密集的事件触发,但是这次密集事件触发的过程,不会等待最后一次才进行函数调用,而是会按照一定的频率进行调用;

http://www.lryc.cn/news/461912.html

相关文章:

  • 树莓派刷入OpenWrt后扩容overlay的方法
  • 【JS】Node.js读取execle表格中的数据
  • 怎么为pdf文件设置密码?几种PDF文件设置密码的方法推荐
  • Rust : FnOnce、线程池与多策略执行
  • 一个汉字占几个字节、JS中如何获得一个字符串占用多少字节?
  • CommonJS 和 ES modules
  • 计算机网络——CDN
  • 大数据治理:挑战与策略
  • 屋面通风器安装方案及流程
  • ComfyUI一键更换服装:IP-Adapter V2 + FaceDetailer(DeepFashion)
  • AWS账号与亚马逊账号的关系解析
  • Java八大基本数据类型详解
  • ChatGPT的终极指南概要
  • Android应用性能优化的方法
  • 『网络游戏』客户端发送消息到服务器【17】
  • 【系统架构设计师】专题:数据库系统考点梳理
  • Java传递对象是值传递还是引用传递?
  • 解锁C++多态的魔力:灵活与高效的编码艺术(上)
  • k8s系列-Rancher 上操作的k8s容器网络配置总结
  • 2024年【氯化工艺】考试题库及氯化工艺考试内容
  • 从commit校验失效问题探究husky原理
  • Azure OpenAI 服务上线具有音频和语音功能的 GPT-4o-Realtime-Preview,免费申请试用
  • 基于IMX6UL的EPIT的定时器实验
  • FreeMarker模板引擎入门:从基础到实践的全面指南
  • YOLOv8模型改进 第十讲 添加全维度动态卷积(Omni-dimensional Dynamic Convolution,ODConv)
  • 【环境搭建】远程服务器搭建ElasticSearch
  • 机器学习与神经网络:诺贝尔物理学奖的新篇章
  • 倍福TwinCAT程序中遇到的bug
  • R语言实现logistic回归曲线绘制
  • 零宽字符(ZWSP)