在 Firefox 扩展中的两个后台脚本之间共享变量
Sharing variables between two background scripts in a Firefox Extension
假设我有以下 manifest.json
文件:
{
"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"]
}
}
如果我在 background.js
中这样定义一个变量:var testVariable = 'test';
,有什么方法可以让我在 partners.js
中访问同一个变量?
通过清单?没办法。
仅通过创建第 3 个 js 文件并在需要时调用它...
<script src="shared.js"></script>
当然有可能。同一上下文中的所有后台脚本 运行 - 后台页面 。因此,后台脚本中全局定义的任何变量(即在最顶层或通过 window.varname
)都可以通过 window.varname
或仅通过 varname
.
用于任何其他后台脚本
就像普通网页一样:如果它有多个 JS 脚本,它们都共享每个脚本中的全局定义变量。
假设我有以下 manifest.json
文件:
{
"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"]
}
}
如果我在 background.js
中这样定义一个变量:var testVariable = 'test';
,有什么方法可以让我在 partners.js
中访问同一个变量?
通过清单?没办法。
仅通过创建第 3 个 js 文件并在需要时调用它...
<script src="shared.js"></script>
当然有可能。同一上下文中的所有后台脚本 运行 - 后台页面 。因此,后台脚本中全局定义的任何变量(即在最顶层或通过 window.varname
)都可以通过 window.varname
或仅通过 varname
.
就像普通网页一样:如果它有多个 JS 脚本,它们都共享每个脚本中的全局定义变量。