未捕获的类型错误:无法读取 chrome 扩展中未定义的属性“本地”
Posted
技术标签:
【中文标题】未捕获的类型错误:无法读取 chrome 扩展中未定义的属性“本地”【英文标题】:Uncaught TypeError: Cannot read property 'local' of undefined in chrome extension 【发布时间】:2013-02-13 08:19:34 【问题描述】:我编写了一个 Chrome 扩展程序。我不能使用
localStorage.setItem
和 localStorage.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 添加到清单文件中?
它完成了我的工作......!!!谢谢。你能把它作为答案发布吗。我会接受它
【参考方案1】:
确保已在清单文件中声明了所有必需的 permissions。 "storage"
,就你而言。
一般来说,以下步骤应该可以解决 Chrome API 明显未定义的问题:
-
阅读您正在使用的 API 的文档并熟悉先决条件,通常是清单权限 (e.g.
chrome.storage
#manifest)。
通过查看What's new,检查您(用户的)Chrome 版本是否支持 API。
检查脚本是否在右侧context 中运行。大多数 API 仅可用于扩展程序的进程。 (chrome.storage
API 也可以在内容脚本中使用)
否则,请使用您通常的调试技巧:错字、变量阴影、...
【讨论】:
【参考方案2】:如果您尝试将应用程序作为简单的 html 页面运行,在 Chrome 中打开 HTML 文件,则会收到此错误。
在 Chrome 中正确添加应用程序(作为扩展程序)然后运行它。
【讨论】:
以上是关于未捕获的类型错误:无法读取 chrome 扩展中未定义的属性“本地”的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的类型错误:无法读取 VueJs 中未定义的属性“get”
未捕获的类型错误:无法读取切换功能中未定义的属性“prop”
未捕获的类型错误:无法读取 jquery 滑块中未定义的属性“addClass”
未捕获的类型错误:无法读取 AngularJS 和 D3 中未定义的属性“弧”