您现在的位置是:网站首页> 编程资料编程资料
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)详解html5 postMessage解决跨域通信的问题html5通过postMessage进行跨域通信的方法html5的websockets全双工通信详解学习示例HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2021-08-30
1142人已围观
简介 这篇文章主要介绍了html5关于外链嵌入页面通信问题(postMessage解决跨域通信),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
说起来挺简单的,可以直接去查询postMessage推送和window.addEventListener接收使用方式,能自己搞明白是最好的,本文章也只是记录一下自己的使用方式
使用postMessage推送和window.addEventListener接收
原理:
发送方使用postMessage方法向接收方推送消息,第一个参数为推送的内容,第二个参数是允许被访问的域名;
接收方通过监听message的方法接收数据。
实现跨域就需要有两个不同源的服务器咯
开始
iframe引入页面(我也是使用这样方式)
父页面(发送方)
关于发送简单解释一波:
这里里面的src是子页面的地址(这里是根据你自己写的路由或者那个页面要监听写的地址)。
postMessage({ text:'你收到了没有呀(黑夜)', action : 'dark' }, 'http://localhost:8000/#/') 第一个参数是内容,第二是子页面的地址,这里可以只写项目地址就可以还有写的(例如:postMessage(‘内容’, '')),我是没试过但应该也可以。
子页面(接收方+反馈)
我这边接收是直接在我但react项目里写的
componentWillMount() { window.addEventListener('message', (e) => { console.log(e) let data= e.data //这就是接收到的数据 //e.origin这是发送数据的地址 }) ... ... ... //关于反馈我是在我项目里写了一个点击动作发送的如下 goCustomerDetail=(data)=>{ let url = data.url // window.top.postMessage({ // text:'返回Url', // url:url // }, 'http://XXX:8083/ceshi/ceshi.html') window.top.postMessage('{"name":"客户详情","path":"'+url+'"}', '*') } 关于上面接收反馈解释一波:
1、 接收 window.addEventListener('message', (e) => {console.log(e) })
其中e是整个接收到的消息体里面有很多内容,自己拿使用的数据,注意这里应该加判断符合条件后在进行一些操作
2、发送方式,我自己实验两种反馈,父页面都能收到
注意是用 window.top.postMessage反馈
结束
总结:这个方式还是很好用的,可以不同技术栈通信外链,但是安全方面不是很好,而且需要会出现跨域问题数据请求不到或者接口被拦截,需要自己打开接口设置一波继续访问。
附赠:还有其它方式的引入我自己没用过,参考链接分享
https://www.jianshu.com/p/fb579be635b2
https://www.cnblogs.com/Jry666/p/8418643.html
https://blog.csdn.net/monkindey/article/details/23659387
到此这篇关于html5关于外链嵌入页面通信问题(postMessage解决跨域通信)的文章就介绍到这了,更多相关html5外链嵌入通信内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- HTML5跳转小程序wx-open-launch-weapp的示例代码HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题微信小程序之html5 canvas绘图并保存到系统相册HTML5 和小程序实现拍照图片旋转、压缩和上传功能基于Jscex +HTML5 Canvas 制作的抽奖小程序
- uniapp+Html5端实现PC端适配
- HTML5获取当前地理位置并在百度地图上展示的实例移动端Html5中百度地图的点击事件Html5如何唤起百度地图App的方法HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码HTML5地理定位与第三方工具百度地图的应用html5定位获取当前位置并在百度地图上显示html5定位并在百度地图上显示的示例
- HTML5图片层叠的实现示例HTML5 层的叠加的实现html5写一个BUI折叠菜单插件的实现方法基于HTML5代码实现折叠菜单附源码下载
- HTML5 层的叠加的实现DIV重叠 CSS让DIV层叠 两个DIV或多个DIV顺序重叠加CSS 层叠加的5条原则
- html5实现输入框fixed定位在屏幕最底部兼容性详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容AndroidHTML 5 input placeholder 属性如何完美兼任ieHTML5 input元素类型:email及url介绍html5 input属性使用示例HTML5输入框下拉菜单功能的示例代码HTML5中input输入框默认提示文字向左向右移动的示例代码
- html5启动原生APP总结浅谈Html5页面打开app的一些思考Html5跳转到APP指定页面的实现Html5与App的通讯方式详解html5唤醒APP小记Html5如何唤起百度地图App的方法浅谈html5与APP混合开发遇到的问题总结Html5 APP中监听返回事件处理的方法示例HTML5页面中尝试调起APP功能HTML5页面音视频在微信和app下自动播放的实现方法HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
- HTML5开发动态音频图的实现HTML5自定义mp3播放器源码html5中audio支持音频格式的解决方法HTML5实现音频和视频嵌入的方法详解移动端HTML5音频与视频问题及解决方案html5音频_动力节点Java学院整理HTML5中视频音频的使用详解浅谈Html5中视频 音频标签 进度条的问题使用HTML5在网页中嵌入音频和视频播放的基本方法HTML5中的音频和视频媒体播放元素小结HTML5制作酷炫音频播放器插件图文教程
- HTML5公共页面提取作为公用代码的方法html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- wordpress添加Html5的表单验证required方法小结HTML如何对齐多个表单中的文本框的实现html表单控件禁用属性readonly VS disabled介绍HTML5表单验证特性(知识点小结)html中表单提交的实现HTML通过表单实现酒店筛选功能
