0

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

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

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

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

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],
      });
    });
4

1 回答 1

0

也许我不太了解您的问题,但是:

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

2.如果您想获取您在选项卡中创建\设置的内容脚本变量,您必须向该选项卡中的内容脚本发送一条消息,要求在该消息中返回其值。

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

于 2021-05-08T09:10:21.293 回答