Chrome расширение programmati c CSS ошибка ввода в активную вкладку - PullRequest
0 голосов
/ 10 марта 2020

Я хочу внедрить файл CSS в активную вкладку при выполнении определенного условия. Мне удалось заставить его работать только путем добавления разрешения "<all_urls>" к манифесту, хотя в документации написано, что "activeTab" должно быть достаточно: https://developer.chrome.com/extensions/activeTab#what -activeTab-allow

С код ниже я получаю

Невозможно получить доступ к содержимому страницы. Манифест расширения должен запрашивать разрешение на доступ к соответствующему хосту.

, пока он работает нормально, заменив "activeTab" на "<all_urls>". Почему это так?

манифест. json

...
"permissions": [
    "activeTab"
],

"content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["contentScript.js"]
    }
]

contentScript. js

...
chrome.runtime.sendMessage({injectCSS: true});

фон. js

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
    if (request.injectCSS) {
        chrome.tabs.insertCSS(null, {
            file: 'syle.css'
        });
    }
});

1 Ответ

0 голосов
/ 10 марта 2020

Разрешение activeTab дает временному доступу расширения к активной в данный момент вкладке, когда пользователь вызывает расширение, например, щелкнув его действие браузера. Доступ к вкладке длится, пока пользователь находится на этой странице, и отменяется, когда пользователь уходит или закрывает вкладку.

Это служит альтернативой для многих применений, но не отображает предупреждающее сообщение во время установки

Вы должны вызвать расширение для него, чтобы получить доступ к вкладке при использовании activeTab.

https://developer.chrome.com/extensions/activeTab

...