chrome 扩展清单 v3,访问窗口变量

问题描述

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

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

我尝试使用 scripting.executeScript 但这仍然无法访问窗口变量(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],});
    });

解决方法

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

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...