iframe 给嵌入的 vue页面发送数据(vue2、vue3 都ok)

这篇具有很好参考价值的文章主要介绍了iframe 给嵌入的 vue页面发送数据(vue2、vue3 都ok)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求描述

1.有一个网页A,还有一个vue项目B
2.网页A中 使用 iframe 的方式引入了vue项目B
3.现在需要在网页A中 给 vue项目B 发送消息,让vue项目B 做出响应动作。

案例代码

iframe 端

这就是一个普通的网页

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>测试iframe 给 vue项目发送消息</title>
    <script>
        function sendMsg(){
            console.log('发送数据 begin ')
            // 获取到iframe 对象
            var iframe = document.getElementById('abcframe');
            // 封装要发送的数据
            var data = {
                    msg: 'xxx'
                };
            // 执行发送 : 主要后面的这个域名地址,如果有端口的话,需要包含端口号!
            iframe.contentWindow.postMessage(JSON.stringify(data), 'http://www.abc.com:1234');
            console.log('发送数据 end ')

        }
    </script>
  </head>
  <body>
    <!-- 测试按钮 -->
    <button onclick="sendMsg()">点我试试</button>
    <br><br>
    <!-- 嵌入的 iframe 链接 -->
    <iframe id="abcframe" src="http://www.abc.com:1234/aa/bb/cc" ></iframe>
  </body>
</html>

网页大致长这样
iframe 给嵌入的 vue页面发送数据(vue2、vue3 都ok),JavaWeb 前端,vue.js,javascript,iframe嵌入vue,iframe 通讯

vue端

注意 : 这里接收事件的代码要写在 onMount() 声明周期钩子中
主要的就是进行事件监听 :window.addEventListener(‘message’, function(e) {xxxxxx})文章来源地址https://www.toymoban.com/news/detail-738370.html

 onMounted(() => {

	  /**
	 * 监听 企服首页上面 传过来关闭事件
	 */
 	window.addEventListener('message', function(e) {
 		// 这就是接收到的数据
        console.log(e.data);
        // 接收到之后,再进行其他的逻辑处理就可以了
        。。。。。。
       
		// 如果还想给 iframe 返回数据,请这样写
        //window.parent.postMessage(JSON.stringify(data), 'http://www.nealyang.cn');

    });
})

到了这里,关于iframe 给嵌入的 vue页面发送数据(vue2、vue3 都ok)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 页面嵌入iframe Cookie丢失问题解决

    遇到的问题 自身页面以iframe的形式嵌入三方页面中,双方域名不一致导致自身页面的cookie被某些浏览器拦截无法正常被保存到客户端 解决方案 后端将cookie以链接参数的形式带给前端 前端在请求接口的时候将cookie放在请求头(这里无法直接在请求头放置Cookie参数,需要使用一

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

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

    2023年04月25日
    浏览(46)
  • vue2组件库:表格数据展示通用页面

    2024年02月11日
    浏览(26)
  • 【vue2中的pdf预览】iframe/pdf.js/vue-pdf

    vue2中预览pdf的方法有pdf.js和vue-pdf等。下面进行简单对比使用方法的介绍。 使用iframe预览pdf 如果后端返回的不是url,那么需要使用 responseType = \\\'blob\\\' 来读取后端传来的内容。 扩展: 同样是使用iframe进行预览,如果有 其他格式 如word/xls/ppt/txt的文件需要预览,可以使用微软解

    2024年02月09日
    浏览(42)
  • vue父子组件之间双向数据绑定的(vue2/vue3)

    vue父子组件之间双向数据绑定的四种方法(vue2/vue3) vue考虑到组件的可维护性,是不允许子组件改变父组件传的props值的。父组件通过绑定属性的方式向子组件传值,而在子组件中可以通过$emit向父组件通信(第一种方式),通过这种间接的方式改变父组件的data,从而实现子组

    2024年02月08日
    浏览(57)
  • 【vue3】关于watch与computed的用法看这个就ok

    😉博主:初映CY的前说(前端领域) ,📒本文核心:watch()与computed的使用【vue2中watch|computed概念详解】,本文将介绍在vue3中怎么使用这两者技能 【前言】vue2当中有这两个技能,那么vue3中的watch与computed是怎么用呢? 注意点:对 reactive 自身的修改则不会触发监听。 一定得注意不

    2023年04月10日
    浏览(24)
  • Jeecg开发框架前端VUE2数据页面与后端数据库交互实现

    ​ JeecgBoot 是一款基于代码生成器的 低代码 开发平台,零代码开发!采用前后端分离架构:SpringBoot2.x,Ant DesignVue,Mybatis-plus,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! JeecgBoot引领新的开发模式(Online Coding模式- 代码生成器模式- 手工MERGE智能开发

    2024年02月11日
    浏览(30)
  • vue3-内嵌iframe的传参与接收参数

    项目场景:当项目a需要用到项目b中的某个模块,如项目b中的支付模块 与 项目a的支付模块是通用的,可以使用iframe将项目b内嵌在项目a中,达到代码功能复用的效果。 既然两个项目中有共通的内容 就少不了互相通信。核心的两个方法是 传值:postMessage() 和 接收值:addEven

    2024年02月12日
    浏览(26)
  • 若依前后端分离+Vue2+Element UI实现根据列数据展示不同页面的数据

    多个表格中存在同一字段,并且可通过该字段查到与之对应的数据。举个简单的例子,比如我有一个学生表、一个老师表、一个课程表,假设老师表和学生表里都有课程ID这一字段,那么我可以在课程表里通过课程ID来,查找需要上这门课的学生,以及教这门课的老师,并且在

    2024年01月19日
    浏览(36)
  • vue + Element-UI下iframe子页面弹窗蒙层只能遮罩子页面问题解决

    发现网络上使用element-ui+vue做后台页面,基本要搭建vue脚手架,最近有个需求,就是使用element-ui+vue做一套静态页面,主区域使用firame,点击主菜单,可以进入子页面。 问题出现了,新增、修改、删除的弹窗,只能在iframe区域显示: 如何解决这个问题呢?果断各种查资料,希

    2023年04月15日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包