Skip to content

浏览器页签跳转和管理 - window.open

304字约1分钟

HTML

2025-07-10

具体需求

  1. 根据当前 ID,通过 window.open 打开不同的页签
  2. 如果当前页签已经打开,就不需要重复打开,而是切换到当前页签
  3. 如果当前页签不存在或者被关闭,就需要打开新的页签
  4. 在打开的页签中,可以关闭当前页签

解决方案

  1. 根据当前 ID,通过 window.open 打开不同的页签
// 定义一个对象,用于存储打开的页签
const tabs = {};
// 打开新的页签
tabs[id] = window.open(`https://xxx.com?id=${id}`, id);
  1. 如果当前页签已经打开,就不需要重复打开,而是切换到当前页签。以下是优化后的代码:
// 根据 id 判断 当前页面是否存在 或者 被关闭
if (tabs[id] && !tabs[id].closed) {
  // 如果存在,就切换到当前页签
  tabs[id].focus();
} else {
  // 如果不存在,就打开新的页签
  tabs[id] = window.open(`https://xxx.com?id=${id}`, id);
}
  1. 在打开的页签中,可以关闭当前页签,需要注意的是,Window.close() 方法只能关闭由 window.open() 方法打开的窗口。
window.close();