Search code examples
javascriptscopefirefox-addon

Sharing variables between two background scripts in a Firefox Extension


Let's propose I have the following manifest.json file:

{

    "manifest_version": 2,
    "name": "My Test Extension",
    "version": "1.0",

    "icons": {
      "48": "icons/favicon-48x48.png",
    },

    "permissions": [
        "tabs",
        "cookies",
        "<all_urls>"
    ],

    "background": {
        "scripts": ["background/background.js", "background/partners.js"]
    }
}

If I define a variable in background.js like this: var testVariable = 'test';, is there any way I can access this same variable in partners.js?


Solution

  • Sure it's possible. All background scripts run within the same context - background page. So any variable globally defined (i.e. at topmost level or via window.varname) in a background script is available to any other background script via window.varname or just varname.

    It's like with regular web page: if it has multiple JS scripts, they all share globally defined variables in each of them.