当前位置:首页 > 技术文章 > 正文内容

VUE 项目中使用iframe及传值(vue嵌入iframe引起循环)

zonemu1周前 (07-25)技术文章12

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

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

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

<iframe :src="`http://127.0.0.1/demo?${params}`" ref="iframe"></iframe>

处理参数,把参数字符串作为 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 }
}, '*');

完整代码结构




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


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

相关文章

垃圾收费管理系统(垃圾收运管理系统)

今天来了解《#垃圾收费管理系统》,它包括如下功能:收费单位表格界面,类别表格界面,类别设置信息窗口,单位信息表格界面,单位信息信息窗口,缴费登记信息窗口,缴费登记表格界面,缴费登记的缴费单.1,到期提...

宽带客户收费管理系统--维修版(宽带售后服务)

宽带客户收费管理系统--维修版headerfooter《宽带客户收费管理系统——维修版》是一款适合宽带运营商使用的管理系统。软件主要包括以下功能:1.主要功能包括用户开户、收费录入、工单登记、故障处理...

Ubuntu 24.10发行版登场:Linux 6.11内核、GNOME 47桌面环境

IT之家 10 月 11 日消息,Canonical 昨日发布新闻稿,正式推出代号为 Oracular Oriole 的 Ubuntu 24.10 发行版。新版在内核方面升级到最新 6.11 版本,并...

Vue3开发极简入门(14):组件间通信之props、ref&amp;defineExpose

组件间的关系可以分为:父子关系。以前文的代码为例,最典型的就是App.vue与Car.vue这种,APP是父,Car是子。祖孙关系。如果Car再引入一个子组件,这个子组件与App就是祖孙关系。其他。比...

Vue父子组件参数传递方法(vue父子组件传参方式)

在 Vue 中,父子组件之间的参数传递是常见的需求,主要通过 Props 和 自定义事件 实现。以下是详细说明和代码示例:一、父组件向子组件传递参数(Props)父组件通过 属性 向子组件传递数据,子...

「2022」打算跳槽涨薪,必问面试题及答案——VUE篇

1、为什么选择VUE,解决了什么问题?vue.js 正如官网所说的,是一套构建用户界面的渐进式框架。与其它重量级框架不同的是,vue 被设计为可以自底向上逐层应用。vue 的核心库只关注视图层,不仅易...