Запуск javascript на закрепленных вкладках в firefox - PullRequest
1 голос
/ 13 января 2020

Я хочу запустить javascript на страницах, открытых в закрепленных вкладках в firefox, в частности, я хочу изменить часть веб-страниц, загружаемых в закрепленные вкладки. Как мне сделать это с firefox addon api?

1 Ответ

1 голос
/ 15 января 2020

Вы можете сделать это с помощью Firefox tabs API . Любая вкладка имеет свойство «закреплено», которое можно прочитать с фоновой страницы.

Например, вы можете сделать это следующим образом:

Создать мост запроса isTabPinned в фоновом скрипте, который получит свойство tab и отправит его в скрипт контента.

bg. js

chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
    if (msg.request == "isTabPinned") {
        sendResponse(sender.tab.pinned);
    }
});

При отправке скрипта контента запрос к фоновому скриптовому мосту для получения статуса вывода табуляции и изменения DOM, если закладка закреплена.

cs. js

chrome.runtime.sendMessage({ request: "isTabPinned" }, tabPinned => {
    if(tabPinned){
        //.. modify your DOM here
    }
});

Загрузить скрипт контента для страниц, которые нужно проверить (или для любых страниц, как в примере) и фоновый скрипт. Дайте разрешения «tabs» и «activeTab» для вашего скрипта.

manifest. json

{
    "manifest_version": 2,
    "name": "Pin Detector",
    "version": "0.1",

    "background": {
      "scripts": ["bg.js"]
    },

    "content_scripts": [
      {
        "matches": ["*://*/*"],
        "js": ["cs.js"]
      }
    ],

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