background.js 607 Bytes
window.backgroundState = {
  sessionStorage: {},
};

chrome.runtime.onMessage.addListener(async (message) => {
  if (message.type === "sessionStorage") {
    window.backgroundState.sessionStorage = message.value;
  } else {
    const tabsId = await getCurrentTabId();
    if (chrome.tabs && tabsId) {
      chrome.tabs.sendMessage(tabsId, message);
    }
  }
});

/*** 获取当前 tab ID*/
function getCurrentTabId() {
  return new Promise((resolve, reject) => {
    chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
      resolve(tabs.length ? tabs[0].id : null);
    });
  });
}