当用户打开新选项卡而不点击扩展图标时,是否可以调用 chrome.tabs.captureVisibleTab 来截图?

问题描述 投票:0回答:1

我正在构建一个chrome扩展,我想实现用户打开新选项卡时自动截图的功能。我想在不调用扩展程序的情况下实现它(通过单击扩展程序图标)。

我当前的代码如下。切换标签时可以截图,但打开新标签时出现错误。错误是:

`The 'activeTab' permission is not in effect because this extension has not been in invoked.`

//背景.js

const captureScreenshot = (tabId) => {
  chrome.tabs.get(tabId, (tab) => {
    if (!chrome.runtime.lastError && tab && tab.status === "complete") {
      chrome.tabs.captureVisibleTab(null, { format: "png" }, (dataUrl) => {
        if (chrome.runtime.lastError) {
          console.error(chrome.runtime.lastError.message);
          return;
        }
        console.log("Screenshot captured for tab ID:", tabId);
        console.log("Screenshot data URL:", dataUrl);
      });
    } else {
      console.warn("Unable to capture screenshot for tab ID:", tabId);
      console.warn("Tab status:", tab ? tab.status : "unknown");
    }
  });
};

//take screenshot when user switch tab, it works.
chrome.tabs.onActivated.addListener((activeInfo) => {
  setTimeout(() => {
    console.log("Tab activated:", activeInfo);

    captureScreenshot(activeInfo.tabId);
  }, 500);
});

//take screenshot when user open new tab. it doesn't work
chrome.tabs.onCreated.addListener((tab) => {
  setTimeout(() => {
    console.log("New tab created:", tab);
    captureScreenshot(tab.id);
  }, 500);
});

我想我无法在新选项卡中使用

chrome.tabs.captureVisibleTab
,而不单击扩展图标。 所以我认为 html2canvas 可能有可能并阅读 this 。但如何实现我的目标并不是那么明显..

javascript google-chrome-extension screenshot html2canvas
1个回答
0
投票

错误消息“‘activeTab’权限无效,因为尚未调用此扩展。”当 Chrome 扩展程序尝试使用具有 activeTab 权限的 captureVisibleTab 方法,但该扩展程序尚未由用户操作(例如单击扩展程序图标)显式调用时,会发生

© www.soinside.com 2019 - 2024. All rights reserved.