Jelajahi Sumber

Merge branch 'master' of http://787255.xyz:4003/ydm/chrome-plugin

唐渝林 9 bulan lalu
induk
melakukan
b4c4aa8b47
1 mengubah file dengan 27 tambahan dan 11 penghapusan
  1. 27 11
      background.js

+ 27 - 11
background.js

@@ -3,27 +3,43 @@ chrome.runtime.onInstalled.addListener(function () {
   console.log("插件已被安装");
 });
 
-let rinfo = {}
-
-chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
+let pageState = 0; // 0 - 未创建,1 - 已创建
+let pageInfo = null;
+let pageId = "";
+chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) => {
   if (request.action === "show_popup") {
-    const info = request;
-    let n = chrome.windows.create({
-      url: chrome.runtime.getURL("page.html"), // 指向你的弹出页面
-      type: "popup", // 设置为弹出窗口
-    }, (newTab) => {
-      rinfo[newTab.tabs[0].id] = info;
-    });
+    pageInfo = request;
+    try {
+      await chrome.tabs.get(pageId)
+    } catch {
+      pageState = 0; // 说明没找到
+    }
+    if (pageState === 0) {
+      chrome.windows.create({
+        url: chrome.runtime.getURL("page.html"), // 指向你的弹出页面
+        type: "popup", // 设置为弹出窗口
+      }, (newTab) => {
+        pageId = newTab.tabs[0].id;
+        pageState = 1;
+      });
+    }
+    else {
+      sendTabMessage(pageId, pageInfo)
+    }
   }
 });
 
 // 监听已更新的标签,以找出何时打开了 page.html
 chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
   if (changeInfo.status === 'complete' && tab.url.includes('page.html')) {
-    chrome.tabs.sendMessage(tabId, { msgToPopup: "发送页面", data: rinfo[tabId] });
+    sendTabMessage(tabId, pageInfo)
   }
 });
 
+function sendTabMessage(tabId, data) {
+  chrome.tabs.sendMessage(tabId, { msgToPopup: "发送页面", data, pageState: pageState });
+}
+
 // // background.js
 // chrome.runtime.onInstalled.addListener(function () {
 //   console.log("插件已被安装");