首页 > 其他分享 >vueCli3--父子窗口之间通信

vueCli3--父子窗口之间通信

时间:2023-03-04 14:34:25浏览次数:43  
标签:const childWindow vueCli3 -- dd value 窗口 yes

demo-father.vue

<template>   <div>     <button @click="openNewWindow">点击开新窗口</button>     <button @click="closeSonWin">关闭子窗口</button>     <button @click="getSonWin">触发子窗口</button>
    <h1>{{ a }}</h1>   </div> </template> <script lang="ts"> import router from "@/router"; import { defineComponent, ref } from "vue"; export default defineComponent({   name: "AppDemoFather", }); </script> <script lang="ts" setup> let a = ref(0); let childWindow = ref(); function addFunc() {   a.value++; } const openNewWindow = () => {   const sonWindow = router.resolve({     path: "/demo/child",   });   window.addFunc = (value: string) => {     console.log(value);     a.value++;   };   childWindow.value = window.open(     sonWindow.href,     "",     "fullscreen=yes,scrollbars=yes,resizable=yes,top=10,left=10,toolbar=yes,menubar=yes"   );   childWindow.value.onload = () => {     // const dd = childWindow.value.document.getElementById("btn");     // if (dd) {     //   dd.onclick();     // }   };   // console.log(newWindowObj); }; const closeSonWin = () => {   childWindow.value.close(); };
const getSonWin = () => {   const dd = childWindow.value.document.getElementById("btn");   if (dd) {     dd.onclick(a.value);   } }; </script> <style scoped lang="scss"></style>

demo-child.vue

<template>   <div>     这里是子窗口     <button @click="fatherAdd">触发父窗口的加法函数</button>     <button style="display: none;" id="btn" @click="getList">触发子窗口的函数</button>         <h1>{{ b }}</h1>   </div> </template> <script lang="ts"> import { defineComponent, ref } from "vue"; export default defineComponent({   name: "AppDemoChild", }); </script> <script lang="ts" setup> const b = ref(0); const init = () => {   setTimeout(() => {     const dd = document.getElementById("btn");     if (dd) {       dd.onclick = (value: any) => {         b.value = value;         alert("触发子窗口方法");       };     }   }, 0); }; init(); const fatherAdd = () => {   window.opener.addFunc("1111"); }; const getList = () => {   alert("触发子窗口方法"); }; </script> <style scoped lang="scss"></style>

标签:const,childWindow,vueCli3,--,dd,value,窗口,yes
From: https://www.cnblogs.com/gaosj20210301/p/17178240.html

相关文章

  • Join线程插队
    packagecom.Java;//Join线程插队必须执行完再执行其他线程publicclassTestJoinimplementsRunnable{@Overridepublicvoidrun(){for(inti=0;......
  • 计算周岁
    #include<stdio.h>intmain(){ inty1,y2,m1,m2,d1,d2,age; printf("请输入出生日期"); scanf("%d%d%d",&y1,&m1,&d1); printf("请输入当前日期"); scanf("%d%d%......
  • python练习100题(持续更新)9
    作为一个有过编程基础的人,普通的python课已经无法满足期望值,意向尽快使用python做一些有趣的小玩意,为了尽快掌握python语法就在哔哩哔哩上看了一些练习课,链接地址是:https:/......
  • 高抗干扰/抗电源电压波动 高灵敏度1/单通道/单键触摸触控感应芯片:VK3601 超低单价【FA
    1.概述VK3601是一款单触摸通道带1个逻辑控制输出的电容式触摸芯片。具有如下功能特点和优势:可通过触摸实现各种逻辑功能控制。操作简单、方便实用。可在有介质(如玻......
  • 2.基于Label studio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标
    文档抽取任务LabelStudio使用指南1.基于Labelstudio的训练数据标注指南:信息抽取(实体关系抽取)、文本分类等2.基于Labelstudio的训练数据标注指南:(智能文档)文档抽取任务、......
  • 证监会发布新规,投资者个人信息保护要求再升级
    3月3日,证监会发布《证券期货业网络和信息安全管理办法》(以下简称《办法》),将于2023年5月1日起正式实施。《办法》共八章七十五条,全面覆盖了包括证券期货关键信息基础设施运营......
  • 电商API分享 全网最全电商API 备用
    item_get获得淘宝商品详情item_get_pro获得淘宝商品详情高级版item_review获得淘宝商品评论item_fee获得淘宝商品快递费用item_password获得淘口令真实urlitem_list_up......
  • 【Spring Boot源码剖析之Spring Boot源码剖析】
    SpringBoot源码剖析SpringBoot依赖管理问题:(1)为什么导入dependency时不需要指定版本?SpringBoot项目的父项目依赖spring-boot-starter-parent<parent><groupId>org.......
  • 如何利用 NotionAI 优化团队生产力
    NotionAI是一个功能强大的工具,可以帮助团队提高生产力和工作效率。本文将介绍如何使用NotionAI增强团队协作,并提高团队生产力。NotionAI介绍NotionAI是一个智能化的项......
  • 自实现分布式链路追踪 方案&实践
    前言:排查问题是程序员的基本能力也是必须要会的,在开发环境,我们可以debug,但是一旦到了服务器上,就很难debug了,最有效的方式就是通过日志揪出bug,而一次请求的日志如果没有一个......