|
@@ -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, { data: 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, { msgToPopup: "发送页面", data: pageInfo })
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+function sendTabMessage(tabId, data) {
|
|
|
+ chrome.tabs.sendMessage(tabId, data);
|
|
|
+}
|
|
|
+
|
|
|
// // background.js
|
|
|
// chrome.runtime.onInstalled.addListener(function () {
|
|
|
// console.log("插件已被安装");
|