瑞强 吴 9 달 전
부모
커밋
720f0eee88
7개의 변경된 파일47개의 추가작업 그리고 2개의 파일을 삭제
  1. 20 0
      background.js
  2. 4 0
      content.js
  3. 1 1
      manifest.json
  4. 3 0
      page.css
  5. 13 0
      page.html
  6. 5 0
      page.js
  7. 1 1
      popup.js

+ 20 - 0
background.js

@@ -2,3 +2,23 @@
 chrome.runtime.onInstalled.addListener(function () {
   console.log("插件已被安装");
 });
+
+let rinfo = {}
+
+chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
+  if (request.action === "show_popup") {
+    const info = request.data;
+    let n = chrome.windows.create({
+      url: chrome.runtime.getURL("page.html"), // 指向你的弹出页面
+    }, (newTab) => {
+      rinfo[newTab.tabs[0].id] = info
+    });
+  }
+});
+
+// 监听已更新的标签,以找出何时打开了 page.html
+chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
+  if (changeInfo.status === 'complete' && tab.url.includes('page.html')) {
+    chrome.tabs.sendMessage(tabId, { msgToPopup: rinfo[tabId] + new Date().toString() });
+  }
+});

+ 4 - 0
content.js

@@ -45,11 +45,15 @@ chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
       isOpen = false;
     }
   }
+  if(request.msgToPopup){
+    debugger
+  }
 });
 
 let isOpen = false;
 
 function clickHandler(e) {
+  chrome.runtime.sendMessage({ action: "show_popup", data: "打开新页面" });
   console.log(oldTarget);
 }
 

+ 1 - 1
manifest.json

@@ -3,7 +3,7 @@
   "version": "1.0",
   "description": "Build an Extension!",
   "manifest_version": 3,
-  "permissions": ["activeTab", "storage"],
+  "permissions": ["tabs", "activeTab", "storage"],
   "action": {
     "default_popup": "popup.html"
   },

+ 3 - 0
page.css

@@ -0,0 +1,3 @@
+p{
+    color: red;
+}

+ 13 - 0
page.html

@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+    <link rel="stylesheet" href="./page.css">
+</head>
+<body>
+    <p id="message">test</p>
+    <script src="page.js"></script>
+</body>
+</html>

+ 5 - 0
page.js

@@ -0,0 +1,5 @@
+chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
+    if (request.msgToPopup) {
+        document.querySelector('#message').textContent = request.msgToPopup
+    }
+})

+ 1 - 1
popup.js

@@ -18,4 +18,4 @@ function sendMessage(isChecked) {
       message: isChecked,
     });
   });
-}
+}