vue3-内嵌iframe的传参与接收参数

这篇具有很好参考价值的文章主要介绍了vue3-内嵌iframe的传参与接收参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:当项目a需要用到项目b中的某个模块,如项目b中的支付模块 与 项目a的支付模块是通用的,可以使用iframe将项目b内嵌在项目a中,达到代码功能复用的效果。

前言

既然两个项目中有共通的内容 就少不了互相通信。核心的两个方法是 传值:postMessage() 和 接收值:addEventListener()。


一、内嵌iframe

项目a代码如下:

<template>
	<div class="iframe" v-if="payShow">
	  <!--iframeUrl 需要内嵌展示的url 传值可以直接拼接在路径后 如:https://xxx.com?data='需要传的参数'-->
      <iframe id="iframe" :src="iframeUrl" frameborder="0" style="width:100%; height: 100%;"></iframe>
    </div>
</template>

二、iframe传参

此时项目a中内嵌了iframe展示项目b,项目b中需要点击关闭按钮,将自己在项目a中关闭,这个时候需要项目b点击事件触发时,将这个操作响应给项目a,所以需要项目b给项目a传参。使用方法:window.parent.postMessage() , 具体参数和使用详细可以查看官网:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage
项目b代码如下:

const handleBack = () => {
 	let data = {
 		judge: false,
  	}
  	// 传参
  	window.parent.postMessage(data, '*')
}

三、接收iframe参数

接收参数使用方法: addEventListener(事件名称,执行函数,触发类型) 用于向指定元素添加监听事件,配合removeEventListener() 方法来移除事件。
项目a代码如下:

onMounted(() => {
	// message 该事件通过或者从对象(WebSocket, Web Worker, Event Source 或者子 frame 或父窗口)接收到消息时触发
	window.addEventListener('message',payEvent)
})

const payEvent=(event)=> {
    if (event.data) {
      	payShow.value = event.data.judge
    }
}

onUnmounted(() => {
  	window.removeEventListener('message',payEvent)
})

总结

iframe的传参与接收参数到此完成,最后记得页面关闭时移除监听事件。文章来源地址https://www.toymoban.com/news/detail-530408.html

到了这里,关于vue3-内嵌iframe的传参与接收参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue父子组件之间的传参的几种方式

    这是最常用的一种方式。通过props选项,在父组件中传递数据给子组件。在子组件中使用props声明该属性,就可以访问到父组件传递过来的数据了。 子组件向父组件传递数据的方式。在子组件中使用emit方法触发一个自定义事件,并通过参数传递数据。在父组件中监听这个事件

    2023年04月24日
    浏览(72)
  • uniapp,vue3路由传递接收参数

    官网vue2升vue3的教程中,演示了如何使用onLoad,记得把官网所有内容都看一遍!!! 传递对象参数 接收对象参数

    2024年02月15日
    浏览(43)
  • vue3上传多个文件并携带参数一起上传,后台java接收

    直接上代码 vue代码 上传文件组件,采用element-plus 这里采用的是手动上传,选取文件后,点击保存才会触发上传操作 这个地方如果不添加.raw  可以看到这个files是个[object Object] 同样它传入后台是个String类型 你用MultipartFile[]来接收这个String类型的 “[object Object]” 这肯定不行

    2024年02月13日
    浏览(43)
  • Element UI 页面传参与接收参数,注意router和route

    在 Element UI 中,可以使用 $router 对象来进行页面跳转并设置请求参数。同时,也可以在目标页面中使用 $route 对象来获取传递的参数。 以下是一个示例: 在跳转前的页面中,使用 $router 对象进行跳转并设置参数: 在这个例子中,跳转前的页面通过 $router 对象的 push 方法进行

    2024年01月18日
    浏览(35)
  • uniapp使用vue3语法利用uni.navigateTo跳转和接收参数

    官网利用vue3语法写uni.navigateTo跳转接参可能出现接收参数有问题的情况 ,获取上一个页面数据需要进行调整。         uni官网:uni.navigateTo(OBJECT) | uni-app官网 利用onload钩子3函数接收参数

    2024年02月02日
    浏览(41)
  • vue页面内嵌iframe使用postMessage进行数据交互(postMessage跨域通信)

    什么是postMessage postMessage 是 html5 引入的 API ,它允许来自 不同源 的脚本采用 异步方式进行有效的通信 ,可以实现跨文本文档,多窗口,跨域消息传递.多用于窗口间数据通信,这也使它成为 跨域通信 的一种有效的解决方案. vue父页面(嵌入iframe的页面) 在vue中要使用iframe上的pos

    2023年04月25日
    浏览(65)
  • json传参到java接口部分参数接收不到

    使用postman传参时,接口参数中有部分参数被传递进了接口内部,还有部分参数没有接收到,如下图:第一张图是postman接口参数,第二张图是接收到的参数 图一: 图二: 这个问题其实解决很简单,就是json数据转化为实体的过程,找寻get、set方法失败,导致数据无法正常从

    2023年04月10日
    浏览(44)
  • vue3使用axios发送post请求,后台接收到的参数总是null,使用postman测试后台是能接收数据的

    使用vue3,连基本的请求都失败了,使用浏览器查看post请求,参数中是有值,但是传到后台,每个参数都是null,不知道哪里错了。排除了后台的错误,就剩下了vue代码的错误了。我出错的地方是vue使用axios发送post请求的时候,参数格式写错了。 直接贴代码了,正确的写法 f

    2024年02月13日
    浏览(45)
  • 小程序wx.navigateToMiniProgram跳转传参和接收参数

    小程序wx.navigateToMiniProgram跳转传参和接收参数 看了好多没有具体的步骤,自己写一下 传参 wx.navigateToMiniProgram({ appId: \\\'\\\', path: \\\'page/index/index?id=123\\\', extraData: { foo: \\\'bar\\\' }, envVersion: \\\'develop\\\', success(res) { // 打开成功 } }) 对应小程序接收参数 需要在app.js App.onLaunch , App.onShow 中接收,数

    2024年02月09日
    浏览(49)
  • vue2和vue3 子组件父组件之间的传值方法

    在组件化开发的过程中难免会遇见 子组件和父组件之间的通讯那么这里讲关于vue2和vue3不同的通讯方式 先看一下vue2 父组件向子组件传递参数 父组件通过 : 语法 其实就是v-bind 来传递参数 子组件通过 props 来获取父组件传递的方法 亿点小知识:子组件接收到数据之后,不能直接

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包