假设我们有Chrome扩展程序,它使用后台页面,弹出页面,可能还有其他一些视图和内容脚本。有一些与主题领域相关的常量数据,必须可以从所有视图和内容脚本访问 分享这些数据的最佳做法是什么?
答案 0 :(得分:7)
一种方法是将所有共享数据保留在后台页面中,并通过大多数上下文中提供的getBackgroundPage访问它。如果不可用(例如,在上下文脚本中),您可以使用message passing来获取数据。
答案 1 :(得分:1)
作为@BorisSmus mentioned,您可以创建一个单独的constants.js
文件,并将其包含在您需要的任何位置。
例如,在manifest.json
:
"content_scripts": [
{
"js": ["constants.js", /* ... your other content scripts ... */]
}
],
以下位于弹出窗口和背景页面<head>
的顶部:
<script src="constants.js"></script>
如果constants.js
的一个用户意外地修改了一个变量,这也有不会导致问题的原因,因为每个用户都有自己的副本。