Javascript 将Chrome扩展(弹出)功能设置为将打开的选项卡

Javascript 将Chrome扩展(弹出)功能设置为将打开的选项卡,javascript,jquery,google-chrome-extension,tabs,popup,Javascript,Jquery,Google Chrome Extension,Tabs,Popup,我正在开发一个Chrome扩展,它可以改变网页的一些特性(如文本颜色、背景颜色、链接颜色),在弹出窗口中选择这些特性,并用jQuery或Javascript应用它们 现在,当我打开弹出窗口并选择颜色时,activeTab可以正常工作,但我希望应用相同的功能 到浏览器中已打开的所有选项卡(不仅仅是activeTab) 导航期间可以打开的所有未来选项卡(例如,单击当前网页中的链接时将打开的新选项卡) 最后,即使在浏览器关闭时也要保存这些功能,以便在浏览器再次打开时设置这些功能 对于第3点,我想我必须

我正在开发一个Chrome扩展,它可以改变网页的一些特性(如文本颜色、背景颜色、链接颜色),在弹出窗口中选择这些特性,并用jQuery或Javascript应用它们
现在,当我打开弹出窗口并选择颜色时,activeTab可以正常工作,但我希望应用相同的功能

  • 到浏览器中已打开的所有选项卡(不仅仅是activeTab)
  • 导航期间可以打开的所有未来选项卡(例如,单击当前网页中的链接时将打开的新选项卡)
  • 最后,即使在浏览器关闭时也要保存这些功能,以便在浏览器再次打开时设置这些功能
  • 对于第3点,我想我必须使用Chrome存储API,但我不知道使用哪种类型以及如何使用它。相反,对于第1点和第2点,我不知道如何继续

    我把我目前开发的代码摘录出来

    Popup.js

    function changeBackground(){
        var color = document.getElementById('backC').value;  //color taken by a color picker
    
        chrome.tabs.query({ active: true, currentWindow: true}, function(tabs) {
            chrome.tabs.sendMessage(tabs[0].id, { type: 'backcolor', bColor: color});
        });
    }
    
    ContentScript.js

    chrome.runtime.onMessage.addListener(
        function(message, sender, sendResponse) {
            switch(message.type) {
    
                case "backcolor":
                    backgroundColor = message.bColor;
                    $("*").css("background-color", message.bColor);
                    break;
    
                default:
                    console.error("Unrecognised message: ", message);
            }
        }
    );
    

    如果你能帮我找到这三点的解决方案。谢谢

    简单地说,您需要通知您的内容才能运行。在后台脚本中,在激活的侦听器上创建一个选项卡。确保内容脚本正在侦听此消息并运行所需的代码

    chrome.tabs.onActivated.addListener({
       message: 'UPDATE_CONTENT_MESSAGE'
    })