chrome 扩展 API 刷新原始页面 windows

chrome extension API refresh page in original windows

我在 background.ts 上使用以下代码将 Chrome 扩展程序作为弹出窗口 window 打开:

chrome.windows.create({
    url: chrome.runtime.getURL("index.html"),
    type: "popup",
    width: w,
    height: h,
    top: top,
    left: left,
  });

如果您在 opensea.io 页面并尝试连接您的 Coinbase 钱包(假设您安装了 Coinbase 扩展程序),则会发生类似的事情

在用户对弹出窗口(Chrome 扩展程序本身)执行一些操作后,我需要刷新原始选项卡。我试过 chrome.tabs.reload(arrayOfTabs[0].id); 但问题是弹出窗口被视为不同的 window 并且我无法访问原始 windows 选项卡。

欢迎提出任何建议。谢谢

假设那是开场白,我试图让自己变得活跃和专注window,但我错了。

之前

chrome.tabs.query({ active: true, lastFocusedWindow: true }, (arrayOfTabs) => {
      if (arrayOfTabs.length > 0 && arrayOfTabs[0].id) {
        chrome.tabs?.reload(arrayOfTabs[0].id, {});
      }
});

之后

chrome.tabs.query({ active: true, windowType: "normal" }, (arrayOfTabs) => {
      if (arrayOfTabs.length > 0 && arrayOfTabs[0].id) {
        chrome.tabs?.reload(arrayOfTabs[0].id, {});
      }
});

这样我就可以得到开启标签了。正如@wOxxOm 在评论中提到的那样,无论 window 是什么,都会识别标签,这完全是关于我正在使用的查询。