You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firefox扩展Manifest V3中如何访问browserAction?

在Firefox Manifest V3扩展中访问原browserAction的解决方法

在Firefox的Manifest V3(MV3)扩展里,browser.browserAction已被废弃,统一替换为browser.action API,这就是你在background.js中访问browserAction得到undefined的原因。

具体修改步骤:

  • 将代码中所有browser.browserAction的调用替换为browser.action
    示例:
    // 旧的MV2写法
    browser.browserAction.setIcon({ path: "icon-16.png" });
    browser.browserAction.onClicked.addListener(tab => {
      console.log("点击了扩展图标");
    });
    
    // 新的MV3写法
    browser.action.setIcon({ path: "icon-16.png" });
    browser.action.onClicked.addListener(tab => {
      console.log("点击了扩展图标");
    });
    
  • 同步修改manifest.json中的配置字段:把原来的browser_action替换为action
    示例配置:
    {
      "manifest_version": 3,
      "name": "你的扩展名称",
      "version": "1.0",
      "action": {
        "default_icon": "icon-16.png",
        "default_popup": "popup.html"
      },
      "background": {
        "scripts": ["background.js"]
        // 若使用Service Worker,写法为:
        // "service_worker": "background.js"
      }
    }
    

额外提示:

  • Firefox对MV3的action API支持和Chrome基本一致,推荐使用browser命名空间以保持Firefox生态兼容性(也可使用chrome.action)
  • 若需兼容MV2和MV3,可通过判断API存在性做兼容处理:
    const actionAPI = browser.action || browser.browserAction;
    actionAPI.setIcon({ path: "icon-16.png" });
    

内容的提问来源于stack exchange,提问作者weshouman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 06:25:55