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

标签 javascript ajax json google-chrome getjson

我试图找出将一系列语言词典文件(英语、法语等)动态加载到 Chrome 扩展程序中的最佳方法。我正在处理的限制:

  1. 我正在运行一个内容脚本,该脚本基于手势识别设备 (LEAP) 控制浏览器操作,因此它始终在事件选项卡中运行。
  2. 用户可以通过使用一系列手势打开菜单页面并选择新语言来选择不同的语言。
  3. 每个字典文件都非常大(~5MB),而且数量很多(25+),所以当扩展初始化时我无法加载它们,否则它真的会堵塞事情。
  4. 我想将字典文件托管在扩展程序的主目录中;而不是托管在外部某个地方。
  5. 我可以将用户的语言选择存储在 Chrome/storage 中,但据我了解,JSON 字典太大,无法放入其中。

总而言之,我希望能够根据用户操作将本地托管的相当大的 JSON 数组 (~5MB) 动态加载到 Chrome 内容脚本中。在不遇到访问控制允许来源问题的情况下执行此操作的最佳方法是什么?

最佳答案

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

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

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

关于javascript - 如何在 Chrome 扩展中动态加载大型 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17140032/

相关文章:

javascript - Angularjs 单选按钮没有给出 json 中的默认值

javascript - 尝试从输入字段返回日期值时,我变得不确定

javascript - CSS Accordion 点击关闭

javascript - 在 Adob​​e Illustrator 中检查锁定/隐藏图层

javascript - 发布到 Node/快速端点的 Ajax 问题

javascript - NodeJS 在 JSON 文件字符串中使用变量

c# - 从 C# Windows 窗体调用 PHP Web 服务

javascript - 组件未在键更改时更新

JavaScript:使用 DOM 从 AJAX 响应构建表格

javascript - 如何从异步调用返回响应?