如何在Chrome扩展中动态加载大型JSON文件

How to dynamically load large JSON files in a Chrome extension

本文关键字:加载 大型 JSON 文件 动态 Chrome 扩展      更新时间:2023-09-26

我正试图找出最好的方法是动态加载一系列语言字典文件(英语,法语等)到Chrome扩展。我正在处理的约束:

  1. 我正在运行一个基于手势识别设备(LEAP)控制浏览器动作的内容脚本,所以它总是在活动选项卡中运行。
  2. 用户可以通过一系列手势打开菜单页面,选择一种新的语言。
  3. 每个字典文件都相当大(~5MB),而且有很多(25+),所以我不能在扩展初始化时加载它们,否则它真的会阻塞事情。
  4. 我想在扩展名的主目录中托管字典文件;而不是托管在外部的某个地方。
  5. 我可以将用户的语言选择存储在Chrome/storage中,但据我所知,JSON字典太大而不能放在那里。

总而言之,我希望能够动态加载一个本地托管,相当大的JSON数组(~5MB)到Chrome内容脚本基于用户的操作。在不遇到Access-Control-Allow-Origin问题的情况下,最好的方法是什么?

您需要将您的JSON文件名添加到清单:http://developer.chrome.com/extensions/manifest.html#web_accessible_resources

这样你就可以从任何内容脚本中访问扩展名中的JSON文件。

您也可以在后台页面加载文件(这样更好),并从内容脚本向后台页面发送消息,从JSON中获取特定数据。这是更好的,因为你加载JSON一次,所有的选项卡。