【问题标题】:Uncaught TypeError: Cannot read property 'local' of undefined in chrome extension未捕获的类型错误:无法读取 chrome 扩展中未定义的属性“本地”
【发布时间】:2013-02-13 08:19:34
【问题描述】:

我编写了一个 Chrome 扩展程序。我不能使用 localStorage.setItemlocalStorage.getItem 用于存储和检索,因为后台和浏览器操作在不同的环境中运行 [as seen here]。

所以我决定使用 Chrome 存储 API:

var storage = chrome.storage.local;
var myTestVar = 'somevar';
var obj = {};
obj[myTestVar] = $("#somevar").val();
storage.set(obj);

产生以下错误:

未捕获的类型错误:无法读取未定义的属性“本地”

我做错了什么?

【问题讨论】:

  • 您是否将"storage" permission 添加到清单文件中?
  • 它完成了我的工作......!!!谢谢。你能把它作为答案发布吗。我会接受它

标签: javascript google-chrome-extension local-storage google-chrome-storage


【解决方案1】:

确保已在清单文件中声明了所有必需的 permissions"storage",就你而言。

一般来说,以下步骤应该可以解决 Chrome API 明显未定义的问题:

  1. 阅读您正在使用的 API 的文档并熟悉先决条件,通常是清单权限 (e.g. chrome.storage#manifest)。
  2. 通过查看What's new,检查您(用户的)Chrome 版本是否支持 API。
  3. 检查脚本是否在右侧context 中运行。大多数 API 仅可用于扩展程序的进程。 (chrome.storage API 也可以在内容脚本中使用)
  4. 否则,请使用您通常的调试技巧:错字、变量阴影、...

【讨论】:

    【解决方案2】:

    如果您尝试将应用程序作为简单的 HTML 页面运行,在 Chrome 中打开 HTML 文件,则会收到此错误。

    在 Chrome 中正确添加应用程序(作为扩展程序)然后运行它。

    【讨论】:

      猜你喜欢
      • 2017-10-28
      • 1970-01-01
      • 2021-06-07
      • 2018-10-20
      • 2016-01-03
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多