网站首页 > 知识剖析 正文
最近做了一个这样的业务处理,在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方向的,只要东西全上手就是干!
猜你喜欢
- 2025-06-13 热血动漫番太好看了!用Python爬取了1T的动漫,内存都爆了
- 2025-06-13 前端实用技术分享—用Vue实现打印指定区域
- 2025-06-13 JSONP安全攻防技术(web安全攻防)
- 2025-06-13 七爪源码:在 Anvil 应用程序中嵌入网页的 3 个简单步骤
- 2025-06-13 IDM、Portal 、ESB如何与钉钉进行集成
- 2025-06-13 layui中弹出层的保存按钮绑定为iframe中表单的按钮
- 2025-06-13 填坑:frame和iframe 你所不知道的!
- 2025-06-13 页面渲染优化的几点建议(页面渲染的顺序)
- 2025-06-13 让我们来看看常见的网页挂马方式(网站挂马一般在什么位置)
- 2025-06-13 【Python大语言模型系列】使用dify云版本开发一个智能客服机器人
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)