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);
});
相关推荐
zhifou1234566 小时前
Vue基础(二)
前端·javascript·vue.js
你脑门上的脚印8 小时前
Vue 项目从零实现语音转文字、文字转语音功能(完整可用 + 踩坑指南)
前端·vue.js
lemon_yyds10 小时前
H5 页面嵌入 APP 的 web-view 时-调用原生能力(uniapp)
vue.js
k4m7v2pz11 小时前
Bevy 0.14 系统调度顺序排查实录:ESC 菜单按钮交互失效的根因定位
交互
ITmaster073112 小时前
Vibe Coding 时代:Vue 消失了还是 React 太强?
前端·vue.js·react.js
万敏12 小时前
Vue3 全栈实战第七周:错误处理与请求层封装实战记录
vue.js·node.js·全栈
伯远医学13 小时前
RIP-seq 高分文献案例分享
java·前端·javascript·人工智能·算法·eclipse·html
人机(未转人工)13 小时前
Flask + MySQL + Ollama(DeepSeek) 漏洞资产库 的网络安全资产分析平台的templates中(chat.html)渲染文件
mysql·flask·html
请你吃div14 小时前
Electron 从零开始的新手开发教程
vue.js·windows·electron
math_hongfan14 小时前
鸿蒙ArkTS手势交互:拖拽、缩放、旋转与组合手势
学习·华为·交互·harmonyos·鸿蒙