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

简介: 前端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
3
4
1.2 子系统获取系父统的传值

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

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

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

window.parent.postMessage('传递的数据', url);
1
1.4 获取子系统发送的数据

window.addEventListener('message',function(e){
console.log("获取子页面传递的数据====",e)
console.log(e.data)
//处理自己的逻辑
})
1
2
3
4
5
2,js页面添加鼠标监听等事件案例

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

["click", "mouseup", "mousemove", "keyup", "touchend"].forEach(item => {
window.addEventListener(
item,
() => {
this.debounceMove();
},
false
);
});
1
2
3
4
5
6
7
8
9
throttle是js的节流函数,请第三方系统使用自己的节流函数。
1
methods: {
debounceMove: throttle(function () {
if(window.parent){
window.parent.postMessage('传递的数据', 'url地址');
}
}, 1000),
},
1
2
3
4
5
6
7
2.2 父系统获取第三方系统(子系统)的消息

        let that = this;
        window.addEventListener('message',function(e){
            console.log("获取子页面传递的数据====",e)
            console.log(e.data)
            if(e.data == 'move'){
                //处理自己的业务逻辑

            }
        })

1
2
3
4
5
6
7
8
9
10
11
12
2.3 节流函数的解释:
在某个时间内(比如500ms),某个函数只能被触发一次。

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

相关文章
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
696 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
前端开发 JavaScript 数据可视化
58K star!这个让网页动起来的JS库,前端工程师直呼真香!
Anime.js 是一款轻量级但功能强大的JavaScript动画引擎,它能够以最简单的方式为网页元素添加令人惊艳的动效。这个项目在GitHub上已经获得58,000+星标,被广泛应用于电商页面、数据可视化、游戏开发等场景。
485 8
|
JavaScript 前端开发 容器
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
13498 24
|
JavaScript 前端开发
|
存储 JavaScript 前端开发
|
移动开发 JavaScript 前端开发
|
存储 JavaScript 前端开发
|
JavaScript 前端开发
|
JavaScript 前端开发