Как я могу получить журнал консоли текущего веб-сайта, открытого в iframe или на странице, с помощью расширений Chrome

Как я могу получить журналы консоли текущего веб-сайта, открытого в iframe или странице, с использованием расширений Chrome, я использую для этого протокол отладчика Chrome, но я могу вычислить журналы

      chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
  console.log("tabs--->", tabs);
  console.log("tabs[0].id", tabs[0].id);

  chrome.debugger.attach({ tabId: tabs[0].id }, "1.1", () => {
    if (chrome.runtime.lastError) {
      console.log("runtime.lastError", chrome.runtime.lastError.message);
      return;
    }
    console.log("Debugger attached");
  });

  chrome.debugger.sendCommand({ tabId: tabs[0].id }, "Console.enable", () => {
    if (chrome.runtime.lastError) {
      console.log("runtime.lastError", chrome.runtime.lastError.message);
      return;
    }
    console.log("Log enabled and result");
  });

  const config = {
    source: "javascript",
    level: "log",
    text: "console.log('hello world')",
  };

  chrome.debugger.sendCommand({ tabId: tabs[0].id }, "Console.ConsoleMessage", config, () => {
    if (chrome.runtime.lastError) {
      console.log("runtime.lastError", chrome.runtime.lastError.message);
      return;
    }
    console.log("Log enabled and result");
  });
});

Я пробовал этот код выше, он выдает ошибку Console.ConsoleMessage не найден

1 ответ

Чтобы получить все журналы

      chrome.debugger.getTargets((result) => console.log(result) ) 

Здесь мы добавляем прослушиватель событий

      chrome.debugger.onEvent.addListener(onEvent);

chrome.tabs.query предоставит вам текущую вкладку. Чтобы включить журналы, мы должны отправить команду Log.enable

      chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
  // you can even attach tabId or targetId 
  chrome.debugger.attach(
    { targetId: "FC33D8084B688E98F5929B90326E3A27" },
    "1.3",
    () => {
      if (chrome.runtime.lastError) {
        console.log("runtime.lastError", chrome.runtime.lastError.message);
        return;
      }
      console.log("Debugger attached");
    }
  );
  chrome.debugger.sendCommand(
    { targetId: "FC33D8084B688E98F5929B90326E3A27" },
    "Log.enable",
    () => {
      if (chrome.runtime.lastError) {
        console.log("runtime.lastError", chrome.runtime.lastError.message);
        return;
      }
      console.log("Log enabled and result");
    }
  );
});

function onEvent(debuggeeId, message, params) {
 // Here you can get the logs
  console.log("params", params);
}