在Chrome扩展程序中存储静态JSON数据的位置?

问题描述 投票:1回答:1

我的扩展中有大约350行静态JSON数据。该数据用于内容脚本,并且需要所有这些数据。这是一个键值对列表。每当用户点击页面时,如果它们与条件匹配并且执行了适当的操作,则检查所有键。就像是:

{
    "ABC": 323.32,
    "BDS": 23.12,
    "GTO": 96.52
}

最好把它放在哪里?我提出了三个想法:

  • 将其直接包含在内容脚本中。
  • 将其加载到事件页面并使用消息传递来检索数据。
  • 将其存储在JSON文件中,并以某种方式使用XHR检索它。不过,我不认为这是可能的。

我知道localStorage,我看过Chrome的各种其他类型的存储。但是,它们似乎是用于在用户使用扩展程序执行操作时生成的数据。

我的数据是静态的。安装扩展后,它不会更改。也就是说,直到扩展程序收到更新并最终修改它。

现在,数据位于内容脚本中。我认为这不是很好,因为它在每次打开页面时都会加载,而它根本不会发生变化。因此,事件页面似乎更合适。但是,是否有针对此类数据设计的内容?

javascript google-chrome google-chrome-extension storage
1个回答
4
投票

您可以使用XHR或fetch检索它。使用chrome.extension.getURL获取文件的URL。

这应该工作:

fetch(chrome.extension.getURL('/data.json'))
    .then((resp) => resp.json())
    .then(function (jsonData) {
        console.log(jsonData);
    });

而且你还必须将它添加到manifest.json:

"web_accessible_resources": [
  "data.json"
],
© www.soinside.com 2019 - 2024. All rights reserved.