VUE 项目中使用iframe及传值

boyanx2个月前技术教程14

最近做了一个这样的业务处理,在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方向的,只要东西全上手就是干!

相关文章

前端你得会——加密解密之crypto-js(建议收藏)

场景在开发过程中,我们会经常会从当前系统跳转别的系统进行访问或者页面嵌套使用。那一般都会给到一个地址进行参数拼接,然后去访问。那么会存在一个问题,就是地址暴露在外面参数使用明文的话会被篡改,极度不安全...

URL URI傻傻分不清楚,dart告诉你该怎么用

简介如果我们要访问一个网站,需要知道这个网站的地址,网站的地址一般被称为URL,他的全称是Uniform Resource Locator。那么什么是URI呢?URI的全程是Uniform Resou...

惊涛骇浪洪水汹涌 他们又一次挺身而出——记抗洪救灾中的体彩人

]|\[sS])*"|'(?:[^\' ]|\[sS])*'|[^)}]+)s*)/g,l=window.testenv_reshost||window.__moon_host||"res.wx.qq...

判断JavaScript的常用对象类型的方法和是否包含某个属性的判断

1.判断对象类型的方法://万能的类型判断方法,可以判断所有对象的类型 const objectToString = Object.prototype.toString; const toTypeSt...

手把手教你常用的59个JS类方法

前言前端开发有时会处理一部分后台返回的数据,或者根据数据判断做一些处理; 这个时候就非常有必要将一些常用的工具类封装起来; 本文根据常用的一些工具类封装了 59 个方法,当然还有很多用的较少前期没有录...

前端搭建 MCP Client(Web版)+ Server + Agent 实践

关注更多AI编程资讯请去AI Coding专区:https://juejin.cn/aicoding先上个效果图,上图是在 web 版 Client 中使用 todoist-mcp-server 帮我...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。