前端实现打开新标签页后,再次定位到该标签页

需求

A 页面中点击按钮可以打开新的标签页 B 并且向 B 页面发送消息数据。

当新的标签页 B 未关闭且符合同源策略时,再次点击按钮,可以自动跳转到标签页 B 并且发生消息数据。

B.html 

<script>
  window.onmessage = evt => {
    console.log(evt.data);
  }
</script>

页面自动定位方法

一、window.open(url, target)

A.html

<button>B Page</button>
<script>
  const button = document.querySelector("button");
  let child = null;

  button.addEventListener("click", () => {
    child = window.open("http://127.0.0.1:5500/B.html", "BPage");
    child.postMessage("hello");
  });
</script>

Window:open() 方法 - Web API 接口参考 | MDN

参数 target: 一个不含空格的字符串,用于指定加载资源的浏览上下文的名称。如果该名称无法识别现有的上下文,则会创建一个新的上下文,并赋予指定的名称。还可以使用特殊的 target 关键字:_self_blank_parent 和 _top

二、window.focus()

A.html

<button>B Page</button>
<script>
  const button = document.querySelector("button");
  let child = null;

  button.addEventListener("click", () => {
    if (child) {
      child.focus();
    } else {
      child = window.open("http://127.0.0.1:5500/B.html");
    }
    child.postMessage("hello");
  });
</script>

三、a 超链接

<a href="http://127.0.0.1:5500/B.html" target="BPage">
  Open B Page
</a>

运行

  1. 如上创建 A、B html 文件
  2. 安装并使用 VsCode LiveServer 插件
  3. 点击右下角状态栏的 “Go Live”

    点击后(默认端口 5500):
  4. 打开 http://127.0.0.1:5500/A.html 进行测试即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/531420.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

wps的1)2)3)编号,怎么更新

全部选中->格式刷->把它刷了必须全部选中

应急响应-挖矿脚本检测指南威胁情报样本定性文件清除入口修复

一、演示案例-挖矿样本-Win&Linux-危害&定性 危害&#xff1a;CPU拉满&#xff0c;网络阻塞&#xff0c;服务器卡顿等 定性&#xff1a;威胁情报平台上传解析分析&#xff0c;文件配置查看等windows样本 linux样本 二、演示案例-Linux-Web安全漏洞导致挖矿事件 某公司…

20240403-算法复习打卡day43||● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

1049. 最后一块石头的重量 II class Solution { public:int lastStoneWeightII(vector<int>& stones) {vector<int> dp(15001, 0);int sum 0;for (int i 0; i < stones.size(); i) sum stones[i];int target sum / 2;for (int i 0; i < stones.siz…

C/C++与Python:各自的优势与前景展望

在讨论C/C和Python这两种编程语言的前景时&#xff0c;我们必须认识到每种语言都有其独特的定位和应用场景&#xff0c;并不存在绝对意义上的“谁更有前景”。它们分别在不同的领域发挥着重要作用&#xff0c;而且在未来的技术发展过程中&#xff0c;二者都将继续保持其不可替代…

600MA线性锂电池充电芯片 - YB4054DJ

描述: YB4054一款完整的单节锂离子电池充电器。其SOT23-5的封装与较少的外部元件数使得YB4054成为便携式应用的理想选择。采用了内部PMOSFET架构&#xff0c;加上防倒充电路&#xff0c;不需要外部检测电阻器和隔离二极管。热反馈可对充电电流进行自动调节&#xff0c;以便在大…

接口自动化测试要做什么?一文3个步骤带你成功学会!

先了解下接口测试流程&#xff1a; 1、需求分析 2、Api文档分析与评审 3、测试计划编写 4、用例设计与评审 5、环境搭建&#xff08;工具&#xff09; 6、执行用例 7、缺陷管理 8、测试报告 了解了接口测试的工作流程&#xff0c;那"接口自动化测试"怎么弄&#xff1…

深入浅出Redis(十一):Redis四种高级数据结构:Geosptial、Hypeloglog、Bitmap、Bloom Filter布隆过滤器

引言 Redis提供丰富的数据结构来解决各种场景下的问题&#xff0c;前段时间的一篇文章深入浅出Redis&#xff08;一&#xff09;&#xff1a;对象与数据结构已经深入浅出的说明Redis中的常用基础对象与数据结构 本篇文章将作为那篇文章的补充&#xff0c;深入浅出的解析另外四…

“春招市场”鸿蒙岗位增长163%!你想活出怎样的代码人生?

前段时间“智联招聘崩了”登上微博热搜。不少网友都感叹&#xff0c;可想而知今年的就业压力有多大&#xff0c;找工作真的太难了…… 金三银四&#xff0c;大家的求职热情暴涨到服务器都承受不住&#xff0c;都想在1179万毕业生中脱颖而出&#xff0c;开年春招就已经热辣滚烫……

B站广告推广操作教程及费用?

哔哩哔哩&#xff08;B站&#xff09;作为国内极具影响力的年轻人文化社区&#xff0c;已成为众多品牌与企业触达目标受众、提升品牌影响力的重要阵地。然而&#xff0c;面对B站复杂的广告系统与精细化运营需求&#xff0c;许多广告主可能对如何高效开展B站广告推广感到困惑。云…

03-JAVA设计模式-组合模式

组合模式 什么是组合模式 组合模式&#xff08;Composite Pattern&#xff09;允许你将对象组合成树形结构以表示“部分-整体”的层次结构&#xff0c;使得客户端以统一的方式处理单个对象和对象的组合。组合模式让你可以将对象组合成树形结构&#xff0c;并且能像单独对象一…

Python零基础从小白打怪升级中~~~~~~~文件和文件夹的操作 (1)

第七节&#xff1a;文件和文件夹的操作 一、IO流&#xff08;Stream&#xff09; 通过“流”的形式允许计算机程序使用相同的方式来访问不同的输入/输出源。stream是从起源&#xff08;source&#xff09;到接收的&#xff08;sink&#xff09;的有序数据。我们这里把输入/输…

Llama 3下月正式发布,继续开源!

4月10日&#xff0c;Techcrunch消息&#xff0c;Meta在本周伦敦举办的一场活动中确定&#xff0c;下个月将正式发布Llama 3并且继续开源。 Meta全球事务总裁Nick Clegg表示&#xff0c;我们希望在下个月&#xff0c;甚至更短的时间内&#xff0c;正式推出新一代基础模型Llama …

[C语言][数据结构][链表] 单链表的从零实现!

目录 零.必备知识 1.一级指针 && 二级指针 2. 节点的成员列表 a.数据 b.指向下一个节点的指针. 3. 动态内存空间的开辟 (malloc-calloc-realloc) 一.单链表的实现与销毁 1.1 节点的定义 1.2 单链表的尾插 1.3 单链表的头插 1.4 单链表的尾删 1.5 单链表的头删 1…

二维数组中的查找

&#x1f600;前言 在解决问题时&#xff0c;我们经常会遇到需要在二维数组中查找特定元素的情况。然而&#xff0c;如果直接使用暴力搜索&#xff0c;即遍历整个数组寻找目标元素&#xff0c;可能会导致时间复杂度较高&#xff0c;效率不高。然而&#xff0c;对于给定的二维数…

将Composite Collider 2D组件移除可解决Unity穿墙问题

将Composite Collider 2D组件移除可解决Unity穿墙问题

HTTP/UDP/TCP/IP网络协议

文章目录 计算机网络基础HTTP相关问题 UDPTCP连接管理(三次握手/四次挥手)TCP可靠传输(确认答应)超时重传滑动窗口流量控制拥塞控制延时应答捎带应答粘包问题其他 IP数据链路层MUT 网卡接收数据流程相关问题TCP会粘包、UDP永远不会粘包 学习博客 计算机网络基础 OSI模型定义了…

vue3 路由允许通过跳转访问,不允许通过空白页访问,同时通过路由跳转来的刷新不会丢失

背景说明 需要是这样的&#xff1a; 假设这个路由是/aa 它可以通过其它路由跳转进入 或 访问路由标签进入。如&#xff1a;通过路由/bb跳转进入到路由/aa&#xff1a;在路由/bb中写如下代码router.push({ path: /aa })不允许通过空白页进入。如 由路由/bb跳转到路由/aa后&am…

Oracle数据库imp文件导入失败提示:“不是有效的导出文件, 标头验证失败”解决方法

导入数据库时&#xff0c;直接提示不是有效的导出文件&#xff0c;标头验证失败 原因&#xff1a;这是因为导出的imp文件和你当前导入的数据库版本不一致造成的&#xff0c;例如&#xff1a;导出文件版本号12.0.1 导入数据库的版本号11.0.2&#xff0c;会报这个错误。 解决办法…

【Java EE】获取Cookie和Session

文章目录 &#x1f38d;Cookie简介&#x1f340;理解Session&#x1f333;Cookie 和 Session 的区别&#x1f332;获取Cookie&#x1f338;传统获取Cookie&#x1f338;简洁获取Cookie &#x1f334;获取Session&#x1f338;Session存储&#x1f338;Session读取&#x1f33b;…

tsc --init 报错

运行 tsc --init 报错&#xff0c; 全局安装 ts 也不行 通过 npx tsc --init 就可以解决