манифест расширения chrome v3, доступ к переменной окна

Как получить доступ к переменной окна страницы через Manifest v3.

В версии 2 я мог бы получить доступ сценария содержимого к переменной окна страницы, вставив javascript на главную страницу. Однако appendChild() для кода javascript не работает в 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 ответ

Возможно, я не очень хорошо понимаю вашу проблему, но:

1. Если страница, к которой вы хотите получить доступ, является расширением страницы, вам не нужно вводить какой-либо сценарий содержимого для получения какой-либо переменной.

2. Если вы хотите получить переменную сценария содержимого, которую вы создали \ установили на вкладке, вы должны отправить сообщение сценарию содержимого на этой вкладке с просьбой вернуть ее значение вместе с этим сообщением.

3. Если вы хотите получить переменную главной страницы (из вашего сценария возможного контента), у вас нет никакой надежды из-за изолированных мировых правил.

Другие вопросы по тегам