Я стараюсь избегать использования разрешения <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