Расширение Chrome для отображения переключателя для включения / отключения расширения - PullRequest
0 голосов
/ 17 февраля 2019

Вот мой манифест

{
    "name": "my-extension",
    "version": "0.0.9",
    "manifest_version": 2,
    "icons": {
        "16": "img/icon16.png",
    },
    "browser_action": {
        "default_icon": "img/icon16.png",
        "default_popup": "html/popup.html"
    },
    "web_accessible_resources": [
        "data/links.json"
    ],
    "content_scripts": [...],
    "background": {
        "scripts": [
            "js/background.js"
        ]
    },
    "permissions": [
        "tabs",
    ]
}

Я бы хотел, чтобы переключатель был в html/popup.html, чтобы, когда пользователь щелкает по нему, я мог сохранять некоторые логические значения, чтобы знать, включено или отключено мое расширение,Затем в content_scripts я могу использовать это логическое значение, чтобы узнать, выполнять задачи или нет.

Пока у меня есть базовый html/popup.html

<!DOCTYPE html>
<html lang="en">
<head>
</head>

<body id="popup">
    <button>
        <!-- Somehow add a text on/off here based on the state -->
    </button>
</body>
</html>

1 Ответ

0 голосов
/ 17 февраля 2019

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

popup.html

<body>
    <button id="toggle"></button>
    <script src="popup.js"></script>
</body>

popup.js

var enabled = false; //disabled by default
var myButton = document.getElementById('toggle');

chrome.storage.local.get('enabled', data => {
    enabled = !!data.enabled;
    myButton.textContent = enabled ? 'Disable' : 'Enable';
});

myButton.onclick = () => {
    enabled = !enabled;
    myButton.textContent = enabled ? 'Disable' : 'Enable';
    chrome.storage.local.set({enabled:enabled});
};

content_script.js

chrome.storage.local.get('enabled', data => {
    if (data.enabled) {
        //it is enabled, do accordingly
    } else {
        //it is disabled
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...