chrome 扩展清单 v3,访问 window 变量

chrome extension manifest v3, accessing window variable

如何通过 Manifest v3 访问页面的 window 变量。

在 V2 中,我可以通过将 javascript 注入主页来让内容脚本访问页面的 window 变量。但是,javascript 代码的 appendChild() 不适用于 V3.

我尝试使用 scripting.executeScript 但这仍然无法访问 window 变量(DOM 是可访问的)。

例如,下面的代码应该在 frameid 0 上注入,但顶部 javascript 上下文的 window 仍然不可读:

chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
      // since only one tab should be active and in the current window at once
      // the return variable should only have one entry
      const activeTab = tabs[0];
      const activeTabId = activeTab.id; // or do whatever you need

      chrome.scripting.executeScript({
        target: { tabId: activeTabId, frameIds: [0] },
        files: [filePath],
      });
    });

可能我没太理解你的问题但是:

1.如果您要访问的页面是一个页面扩展,您不必注入任何内容脚本来检索任何变量。

2. 如果你想获得一个内容脚本变量,你在一个选项卡中有 created\set,你必须向该选项卡中的内容脚本发送消息询问return 它在该消息中的价值。

3. 如果你想获得主页的变量(从你可能的内容脚本中),你没有任何希望,因为孤立的世界规则。