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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Chrome扩展程序中存储静态JSON数据的位置?相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

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

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

答案

您可以使用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"
],

以上是关于在Chrome扩展程序中存储静态JSON数据的位置?的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 扩展的 Manifest.json 中的自定义值?

chrome扩展通知中的Json文件内容[关闭]

如何在 Chrome 扩展 Manifest.json 中设置内容安全策略以使 Firebase 正常工作

Chrome 扩展程序是不是可以访问本地存储?

如何开发Chrome扩展程序

chrome插件制作