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);
});
相关推荐
用户841794814568 分钟前
vxe-table 实现滚动加载数据,无限加载数据教程
vue.js
_请输入用户名23 分钟前
Vue 3 源码项目结构详解
前端·vue.js
前端无涯34 分钟前
Vue3---(2)setup
vue.js
前端无涯36 分钟前
Vue---scoped,deep,CSS Modules
vue.js
前端无涯37 分钟前
Vue3---(1)项目工程创建
vue.js
前端无涯39 分钟前
Vue3---(3)ref,reactive,toRefs,toRef
vue.js
哆啦A梦15881 小时前
商城后台管理系统 01 Vue-i18n国际化
前端·javascript·vue.js
期待のcode1 小时前
Vue的安装创建与运行
前端·javascript·vue.js
+VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue旅游信息推荐系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计·旅游
码界奇点1 小时前
基于SpringBoot和Vue的Fuint门店会员营销系统设计与实现
vue.js·spring boot·后端·毕业设计·springboot·源代码管理