首页 > 其他分享 >不同窗口传参

不同窗口传参

时间:2023-11-08 15:55:37浏览次数:32  
标签:传参 窗口 name 不同 发送 window 新窗口 open targetWindow

1.比较常用的就是window.open()

  1)第一个参数是url,

  2)第二个参数给新窗口的名字(name),并不是新窗口在窗口显示的title,在窗口下,通过window.name的方式拿到。这里也可以设置_self(在旧窗口打开新窗口),_blank(重新打开新窗口,默认就是该模式)

  3)第三个参数窗口宽高等

想同时设置name跟是否新开可以这样写

var targetWindow = window.open('http://localhost:8081/', '_self')
 targetWindow.name = 'demo'

2.使用postMessage的方式(使用环境:Vue)

  • 第一个参数,就是传递的消息message,可以使用字符串,信息过多可以使用JSON.stringify()的方式
  • 第二个参数,就是发送的url地址,也可以使用*来代替,但是不安全

介绍方

 window.addEventListener("message",(e) => {
     // 判断是否是旧窗口发过来的,这个if判断是必须的,然后会多接收一些不想接收的消息,就是信息还没有发送过来,绑定message事件会有默认信息
     if (e.origin !== "http://localhost:8080") return;
     // e.data——接收到的信息
     // e.origin——发送发的url地址,如果没有if判断,就会返回接收方的url(默认信息)
     // e.source——发送方的window引用,如果没有if判断,就会返回接收方的window(默认信息)
     // e.origin和e.source结合可以让接收方向发送方发送信息,从而达到双向通信
     console.log(e.data)
  })

发送方

 <template>
   <div id="app">
     <button @click="open">打开新窗口</button>
   </div>
 </template>
 ​
 export default {
   name: 'App',
   data () {
     this.targetWindow = null
     return {
     }
   },
   methods: {
     open() {
       this.targetWindow = window.open('http://localhost:8081/', '_blank', 'left=100,top=100,width=400,height=400')
       // 为什么加定时器,主要是为了防止window.open()异步加载,页面没有加载出来,就把消息发送出去了,有更好的方式也可以使用其他方式
       setTimeout(() => {
         this.targetWindow.postMessage('旧窗口向新窗口发送的消息', 'http://localhost:8081/')
       }, 1000)
     }
   }
 }
 </script>

参考链接https://juejin.cn/post/7264475859658342456

标签:传参,窗口,name,不同,发送,window,新窗口,open,targetWindow
From: https://www.cnblogs.com/hhcome/p/17817587.html

相关文章

  • Delphi MessageBox消息框应用窗口居中实用解决方案
    众所周知,Delphi的MessageBox消息框是封装的Win32函数。其函数原型为:MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType);其中各参数想必大家都很熟悉,在此不再赘述。主要谈谈 HWND。按官方描述:此参数代表消息框拥有的窗口。如果为NULL,则消息框没......
  • [-006-]-Python3+Unittest+Selenium Web UI自动化测试之悬浮窗口中的元素点击
     1.分析现状:PPT模板悬浮出现悬浮窗口悬浮窗口中分为4大类:PPT模板,PPT模板页,PPT关系图,PPT图表大类下存在小类点击可跳转但是此页面里还存在PPT模板下的总结汇报等此种情况的元素此情况如果仅用text定位是无法定位到的所以排除了text定位方式2.解决方法:首先我们看下悬浮窗......
  • 解决VS2005在Winform窗体设计界面中数据源窗口灰化不显示数据源的问题
    近日发现一个问题,在项目中添加了几个数据源,当在Code界面时,数据源窗口可以显示出我添加的数据源,但是一切换到窗体设计界面,数据源窗口就灰化,数据源窗口中所有的数据源都消失了,切换到Code界面,数据源有出来了,切换到设计界面,又消失了,百思不得其解,一定是VS出问题了……最后经过一顿搜索,原......
  • PyQt5-如何设置应用和窗口的图标?控件的提示信息如何设置?
    (PyQt5-如何设置应用和窗口的图标?控件的提示信息如何设置?)1如何设置应用和窗口的图标?1.1导入需要的包QApplication类是PyQt5的应用程序类;QMainWindow类是一个主窗口类;QIcon类用于创建和管理图标;ctypes是python的一个函数库,提供和C语言兼容的数据类型,可以直接调用动态链接......
  • cf1856E2. PermuTree (hard version)(bitset+二进制优化背包+开不同大小bitset)
    https://codeforces.com/contest/1856/problem/E2结论是显然的,关键是有一些科技在里面bitset+二进制优化具体分析可以参考https://codeforces.com/blog/entry/98663简而言之就是可以通过\(O(\frac{C\sqrtC}{w})\)的复杂度判断是否能够获得某种体积开不同大小bitsettemplate......
  • 界面组件Telerik UI for WinForms中文教程 - 如何自定义应用程序文件窗口?
    TelerikUIforWinForms包含了一个高度可定制的组件,它取代了.NET中默认的OpenFileDialog。在下一个更新版本中,会发布一个向对话框浏览器提那家自定义位置的请求功能,本文演示了这个和另一个自定义功能,它可以帮助用户在浏览文件夹时快速选择最后修改的文件,自定义将根据最近的日期/......
  • Axure——按钮交互:打开链接&关闭窗口
    (1)打开链接——在当前窗口打开链接1.选中按钮元件——单击【新建交互】——选择【单击时】——选择【打开链接】——【链接到外部URL】并输入对应的网址,如www.baidu.com——点击【确定】我们按F5预览一下效果:点击按钮,在当前窗口打开百度页面(2)打开链接——在新窗口打开链接1.......
  • Java eclipse中shell窗口怎么居中显示
    protectedvoidcreateContents(){shell=newShell();shell.setSize(800,600);shell.setText(title);intwidth=shell.getDisplay().getBounds().width;//找到createContents这个方法,得到屏幕的宽度。intheight=shell.getDi......
  • Oracle高级技巧:使用PIVOT函数和窗口函数解决只查询一条数据的问题
    写本博客的目为了温故而知新把学习过程记录下来,以备后查。当我们需要将表格中的行转置为列时,通常可以使用PIVOT函数来实现。但是在某些情况下,由于创建日期等字段相同,只有一条数据会被查询出来。这时候,我们就可以使用窗口函数进行分组和排序,以便返回具有相同创建日期的所有记录。......
  • SpringBoot通过自定义注解+反射机制比较两个对象不同的属性值
    publicclassFieldComparisonUtil{/**•直接返回一个新的对象,并且对象的值只有被修改的部分••@paramold•@paramsource•@paramisParent•@paramtarget目标对象•@return/**•@paramold进行属性比较的原始数据•@paramsource进行属性比......