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);
});
相关推荐
歪歪1001 小时前
HTML 如何转 Markdown
开发语言·chrome·python·程序人生·html
努力奋斗12 小时前
VUE-第二季-02
前端·javascript·vue.js
JSON_L4 小时前
Vue 详情模块 3
前端·javascript·vue.js
大熊学员5 小时前
HTML与JavaScript的羁绊
前端·css·html
神仙别闹8 小时前
基于Vue+Node.js(Express)实现(Web)物联网的蔬菜大棚温湿度监控系统
前端·vue.js·node.js
初遇你时动了情9 小时前
浏览器渲染 首屏优化 性能优化
html·css3·浏览器
x吴文龙9 小时前
不再踩坑,在Vue3+vite安装UNOCSS
前端·vue.js
Java&Develop9 小时前
用html写一个类似于postman可以发送请求
前端·html·postman
拾光拾趣录9 小时前
让 Vue 动起来!用 Motion for Vue 打造丝滑交互的实战指南
前端·vue.js
泉城老铁10 小时前
在 Element UI 中将 el-radio-group改为纵向排列
前端·vue.js