Не удается запустить chrome.browserAction.он щелкнул.addListener с расширениями google chrome


Я немного застрял здесь и задавался вопросом, Может ли кто-нибудь указать, где я могу ошибаться.

Я просто пытаюсь изменить цвет тела на красный по щелчку значка приложения.

Манифест.json

{
    "name": "Bagde",
    "description": "",
    "version": "1",
    "manifest_version": 2,
    "background": {
        "scripts": [
            "background.js"
        ]
    },
    "browser_action": {
        "default_title": "Test",
        "default_popup": "popup.html"
    }
}

Всплывающее окно.html

<html>

    <head>
        <script src="popup.js"></script>
    </head>

    <body>
        <p>Some Content ..</p>
    </body>

</html>

Всплывающее окно.js

document.addEventListener("DOMContentLoaded", function () {
    //Get Reference to Functions
    backGround = chrome.extension.getBackgroundPage();
    //Call Function
    backGround.updateIcon();
  });

Фон.js

var i = 1;

function updateIcon() {
    i = 1;
    chrome.browserAction.setBadgeText({
        text: 'Test'
    });
    chrome.browserAction.setPopup({
        popup: "popup.html"
    });
}


chrome.browserAction.setBadgeBackgroundColor({
    color: [200, 0, 0, 100]
});

window.setInterval(function () {
    chrome.browserAction.setBadgeText({
        text: String(i)
    });
    i++;
}, 4000);

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(null,
        {code:"document.body.bgColor='red'"});
});

Есть идеи, что я могу делать неправильно? Спасибо, что нашли время прочитать это.

1 8

1 ответ:

Если вы определяете default_popup, у вас не может быть слушателя для browserAction.onClicked. В этом случае вы можете просто добавить код в обработчике к вашему popup.js.

EDIT : то есть добавьте к popup.js следующее:

chrome.tabs.executeScript(null, {code:"document.body.bgColor='red'"});