vue3、原生html交互传值

1、引入原生html

将该文件放到public目录下,在vue项目里面使用iframe 引入该文件,监听load事件(load事件在<iframe>的内容完全加载完成之后触发)

复制代码
  <iframe
      @load="onIframeLoad"
      style="width: 454px; height: 480px"
      src="../../../public/Sample/test.html"
      frameborder="0"
    ></iframe>
2、html文件操作完成后,通过postMessage向.vue文件传递信息
复制代码
//html文件的保存事件
function submitEvent()
{
	close();
    //id的值,根据自己需要获取
	window.parent.postMessage({ action: 'close', id: '01234564789'}, '*');
}
3、在vue文件里面,文件加载完成后,添加对'message'事件的监听,监听完成后,进行相应的操作
复制代码
const onIframeLoad = () => {
  window.addEventListener("message", handleMessage);
};

const handleMessage = (event) => {
  if (event.data.action == "close") {
    console.log(event.data.id)
  }
};
4、移除事件监听器
复制代码
onUnmounted(() => {
  // 组件销毁前移除事件监听器
  window.removeEventListener("message", handleMessage);
});
相关推荐
斯内普吖11 分钟前
(开源)宠物饲养系统实战指南 基于 Java + SSM + Vue + MySQL
java·vue.js·mysql·开源·宠物
可乐鸡翅yeah_1 小时前
新手梳理:HLS 线上问题,哪些该提给 CDN,哪些该找后端切片服务
开发语言·前端·javascript·vue.js·网络协议·http·m3u8在线
Q26433650231 小时前
【有源码】基于SpringBoot+Vue的博物馆展览与服务一体化平台-java博物馆数字化展品展示与交互平台设计
java·vue.js·spring boot·spring·毕业设计·javaweb·课程设计
Da Da 泓1 小时前
HTML浅浅入门
前端·html
ym hyd 1112 小时前
汽车零部件缺陷管理系统源码 Java+SpringBoot+Vue3 前后分离
java·vue.js·spring boot·汽车·毕设
听风3473 小时前
windplay网页创意实验场
css·html·创意·website·windplay
vx_Biye_Design3 小时前
springboot小区管理系统68491-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·课程设计·express
薛一半3 小时前
React-Redux三重优化实战揭秘
javascript·vue.js·react.js
专业程序开发源3 小时前
springboot外卖系统94294-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
FYKJ_20103 小时前
springboot心理健康管理系统86254-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·mysql·django·课程设计