在Google Chrome扩展程序中的视图之间共享常量数据

时间:2011-11-08 14:35:24

标签: javascript google-chrome-extension data-sharing

假设我们有Chrome扩展程序,它使用后台页面,弹出页面,可能还有其他一些视图和内容脚本。有一些与主题领域相关的常量数据,必须可以从所有视图和内容脚本访问 分享这些数据的最佳做法是什么?

2 个答案:

答案 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的一个用户意外地修改了一个变量,这也有不会导致问题的原因,因为每个用户都有自己的副本。