如何在本地存储 Firefox 扩展图标状态

How to store Firefox extension icon state locally

我有一个 firefox 扩展程序,当您单击图标图像时,它可以在 html 选项菜单中更改扩展程序图标。

options.html

<body>
    <section class="browser-icons">
      <img id="black-trash" img src="../icons/black_trash.png" title="Black trash"/>
      <img id="red-trash" img src="../icons/red_trash.png" title="Red trash"/>
    </section>

options.js

const blackTrash = document.getElementById("black-trash"); 
const redTrash = document.getElementById("red-trash");
    
function setBlack() {
  browser.browserAction.setIcon({path:"../icons/black_trash.png"});
}
function setRed() {
  browser.browserAction.setIcon({path: "../icons/red_trash.png"});
}
    
blackTrash.addEventListener("click", setBlack);
redTrash.addEventListener("click", setRed);

但是,如果您将图标更改为红色,则只要您重新启动浏览器,它就会重置为黑色(默认)。

如何在本地保存图标状态?

看看:https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage

我不太清楚,但试试 localStorage -

function setBlack() {
  browser.browserAction.setIcon({path:"../icons/black_trash.png"});
  localStorage.setItem('icon', '../icons/black_trash.png');
}

要调用它,您只需要 localStorage.getItem('icon');

我不知道这是否能解决您的问题,但我们也是来学习的;)