iframe调用父页面方法_VUE 项目中使用iframe及传值

最近做了一个这样的业务处理,在uniapp 项目中使用第三方页面,需要在当前的页面中把一些数据传给第三方,第三方处理后返回一些数据给当前页面,后续其他的操作会用到当前的数据。

当前页面-发送数据(iframe页面)

iframe 包括第三方地址把需要传递的数据拼接到url 地址

处理参数,把参数字符串作为 URI 组件进行编码

const query = { param1:'xx',  param2:'ddd' }const params = encodeURIComponent(JSON.stringify(query))

注册监听事件

mounted() {   window.addEventListener('message', this.handleGetMessage)},methods: {  handleMessage(event)  {    if(event.data.status ==='ok') {      console.log(event.data.params, '当前事件数据')    }  }}

第三方地址(iframe子页面)

根据url 获得拼接的参数

const params = JSON.parse(decodeURIComponent(window.location.hash.split('?')[1]))

发送数据

 window.parent.postMessage({          status: 'ok',          params: { id:111 }}, '*');

完整代码结构

1c41a5b2f3e6a8246e72a0cf5c8459e4.png

iframe 父页面发送数据和接受数据

6bdd20224eb65ffd496b667f5409a440.png

子页面接受数据和发送数据

这样就基本完成了iframe 父子页面之间的数据交互,上面只是个简单的示例,遇到了就写的记录下,具体业务开发的时候还是需要处理下,比如传递参数的时候可以把参数加密下,如果传递的参数比较敏感直接编码发送不好,常用的aes或者base64等,或者可以多层加密。


插个题外话阿: 有没有需要前端开发兼职的啊,最好vue方向的,只要东西全上手就是干!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值