4

我写了一个Chrome扩展。我无法使用 localStorage.setItemlocalStorage.getItem进行存储和检索,因为背景和浏览器操作在不同的环境中运行[as seen here]。未捕获TypeError:无法读取铬扩展中未定义的属性'local'

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

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

这将产生以下错误:

Uncaught TypeError: Cannot read property 'local' of undefined

我在做什么错?

+1

你加'“存储”'[权限] (http://developer.chrome.com/extensions/declare_permissions.html)到您的清单文件? – 2013-02-27 14:01:48

+0

它做我的工作.... !!!谢谢你可以发布它作为answer.i'll接受它 – 2013-02-27 14:13:06

回答

8

确保清单文件中声明了所有必需的permissions"storage",在你的情况。

一般情况下,请按照如下步骤显然是不确定的Chrome的API的问题:

  1. 了解您所使用的API的文档,并让自己熟悉的先决条件,通常表现权限(e.g. chrome.storage#manifest) ,
  2. 查看What's new,检查您的(用户)Chrome版本是否支持该API。
  3. 检查脚本是否在正确的context中运行。大多数API仅适用于扩展程序的过程。 (该chrome.storage API也可以在内容脚本中使用虽然)
  4. 否则,再打你平时的调试技巧:错字,变阴影,...
相关问题