繁体   English   中英

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

[英]Uncaught TypeError: Cannot read property 'local' of undefined in chrome extension

我写了一个 Chrome 扩展。 我无法使用localStorage.setItemlocalStorage.getItem进行存储和检索,因为后台和浏览器操作在不同的环境中运行 [ 如此处所见]。

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

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

这产生了以下错误:

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

我究竟做错了什么?

确保在清单文件中声明了所有必要的权限 "storage" ,就你而言。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM