杨东明 9 달 전
부모
커밋
f3743685f5
1개의 변경된 파일67개의 추가작업 그리고 1개의 파일을 삭제
  1. 67 1
      page.js

+ 67 - 1
page.js

@@ -1,6 +1,7 @@
 let nowFileName = "";
 let jsonInfo = {};
 let tabId = "";
+let nodeObj;
 function InitTable() {
   window.TabInstance = $("#filterTable")
     .dxDataGrid({
@@ -215,6 +216,7 @@ chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) => {
 
     await attach();
     await getPathNodeInfo(path);
+    await findEvent();
     TabInstance.option({
       dataSource: data,
     });
@@ -254,6 +256,7 @@ async function getPathNodeInfo(path) {
   for (const index of path) {
     info = getpath(info, index);
   }
+  nodeObj = info;
   let nodeId = info.nodeId;
   let cssInfo = await getMatchedStylesForNode(nodeId);
   jsonInfo = cssInfo;
@@ -285,7 +288,6 @@ async function getDocument() {
 
 async function attach() {
   const targets = await chrome.debugger.getTargets();
-  debugger;
   let target = targets.find((m) => m.tabId == tabId);
   if (target?.attached === true) {
   } else {
@@ -294,3 +296,67 @@ async function attach() {
   await chrome.debugger.sendCommand({ tabId }, "DOM.enable");
   await chrome.debugger.sendCommand({ tabId }, "CSS.enable");
 }
+
+async function findEvent() {
+  let winObj = await chrome.debugger.sendCommand(
+    { tabId },
+    "Runtime.evaluate",
+    {
+      expression: "self",
+      objectGroup: "",
+      includeCommandLineAPI: false,
+      silent: true,
+      returnByValue: false,
+      generatePreview: false,
+      userGesture: false,
+      awaitPromise: false,
+    }
+  );
+  let winEvents = await chrome.debugger.sendCommand(
+    { tabId },
+    "DOMDebugger.getEventListeners",
+    {
+      objectId: winObj.result.objectId,
+    }
+  );
+  let documentObj = await chrome.debugger.sendCommand(
+    { tabId },
+    "Runtime.evaluate",
+    {
+      expression: "document",
+      objectGroup: "",
+      includeCommandLineAPI: false,
+      silent: true,
+      returnByValue: false,
+      generatePreview: false,
+      userGesture: false,
+      awaitPromise: false,
+    }
+  );
+  let documentEvents = await chrome.debugger.sendCommand(
+    { tabId },
+    "DOMDebugger.getEventListeners",
+    {
+      objectId: documentObj.result.objectId,
+    }
+  );
+  let selfObj = await chrome.debugger.sendCommand(
+    { tabId },
+    "DOM.resolveNode",
+    {
+      nodeId: nodeObj.nodeId,
+    }
+  );
+  let selfEvents = await chrome.debugger.sendCommand(
+    { tabId },
+    "DOMDebugger.getEventListeners",
+    {
+      objectId: selfObj.object.objectId,
+    }
+  );
+  return {
+    winEvents: winEvents.listeners,
+    documentEvents: documentEvents.listeners,
+    selfEvents: selfEvents.listeners,
+  };
+}