单击 link 后,如何保持 Chrome 扩展 window 打开?

How to keep the Chrome extension window open after I click a link?

我在使用一个简单的扩展程序时遇到了这个问题。

扩展由一堆 link 组成。当我单击单个 link 时,扩展关闭。 我想保持扩展程序 window 处于打开状态,这样我可以在关闭页面上的 extension/clicking 之前打开更多 link 以继续工作。

有没有一种方法可以让我在单击单个 link 后保持扩展程序打开,并且仅在单击 page/lose 焦点时关闭它?

谢谢。

切换到同一 window 中的另一个选项卡会关闭弹出窗口,因为弹出窗口在概念上绑定到调用它的选项卡。当您打开 URL 时,默认情况下它会在新的活动选项卡中打开(“活动”意味着它当前处于前台),旧选项卡将失去其活动状态,其弹出窗口将关闭。

解决方案是在非活动选项卡中打开链接,即在后台打开链接。

document.addEventListener('click', evt => {
  const a = evt.target.closest('a[href]');
  if (a) {
    evt.preventDefault();
    chrome.tabs.create({url: a.href, active: false});
  }
});

或者,使用 chrome.windows.create 在新 window 中打开链接。