chrome расширение ActiveTab разрешение на выполнение скрипта в кадрах - PullRequest
0 голосов
/ 30 января 2020

Я стараюсь избегать использования разрешения <all_urls>, поскольку теоретически мне нужно только разрешение activeTab, особенно чтобы не ждать одну неделю каждый раз, когда Google будет просматривать новые выпуски моего расширения.

Однако, кажется, что я не могу использовать chrome .tabs.executeScript () непосредственно в кадрах вкладок без разрешения <all_urls>.

// background.js

chrome.tabs.executeScript(
  {
    frameId: frame.frameId,
    code: `
      var videoTag = document.getElementsByTagName("video");
      console.log("videotag:", videoTag)
      if (videoTag.length > 0) {
        var title = document.getElementsByTagName("title")[0].text;
        var ok = true;
        [ok, title];
      }`
  }
)

Приведенный выше код никогда не выполняется только с указанным разрешением activeTab , но хорошо работает с разрешением <all_urls>.

Является ли разрешение activeTab совершенно бесполезным, когда речь идет о доступе к кросс-исходным кадрам в «активной вкладке»? В таком случае, есть ли у меня какое-либо другое решение для достижения той же цели без использования разрешения <all_urls>?

Кроме того, поскольку я не указываю tabId, в котором я хочу выполнить скрипт, это неявно означает что я хочу выполнить его в «активной вкладке»:

integer - (необязательно) tabId - идентификатор вкладки, на которой запускается скрипт; по умолчанию активная вкладка текущего окна.

Источник: https://developer.chrome.com/extensions/tabs#method -executeScript

1 Ответ

0 голосов
/ 30 января 2020

activeTab означает не просто «какая бы вкладка не была на экране, у вас есть к ней доступ»

Вкладка становится «активной», когда пользователь вызывает ваше расширение, когда оно им пользуется. См. Документацию для activeTab

Следующие пользовательские жесты включают activeTab:

  • Выполнение действия браузера
  • Выполнение действие страницы
  • Выполнение пункта контекстного меню
  • Выполнение сочетания клавиш из команд API
  • Принятие предложения от омнибоксового API
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...