相关疑难解决方法(0)

chrome.storage.local.set使用变量键名

在Google Chrome扩展程序中,我想使用chrome.storage.local(而不是localStorage),因为:

  1. 使用键值对,值可以是任何对象(而不是字符串)
  2. 使用setter对数据模型的更改storage.set可以触发事件侦听器

使用storage.set,我如何拥有变量键名?

注意:如果我不使用setter,我可以这样做storage[v1],但对对象的更改不会触发事件监听器.

var storage = chrome.storage.local;
var v1 = 'k1';

storage.set({v1:'s1'});

storage.get(v1,function(result){
    console.log(v1,result);
    //console output = k1 {}
});
storage.get('v1',function(result){
    console.log(result);
    //console output = {v1:'s1'}
});
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension

28
推荐指数
2
解决办法
2万
查看次数

chrome.storage.sync.set不保存值

因此,我对Google Chrome上的本地存储问题陷入了困境.根据我的研究,我的语法似乎是正确的,但由于某种原因,价值没有被保存.这是我的代码:

chrome.storage.sync.get(accName, function(data) {
    var accData = data[accName];
    // Stuff
    chrome.storage.sync.set({ accName: accData }, function() {
        alert('Data saved');
    });
});
Run Code Online (Sandbox Code Playgroud)

每次我重新运行它,data[accName]返回undefined.我已经尝试使用sync.set参数的文字值相同的代码(例如{ 'john32': ['fk35kd'] }),这似乎有效,所以我真的很困惑这个问题是什么.任何帮助,将不胜感激.

javascript google-chrome local-storage google-chrome-extension

5
推荐指数
1
解决办法
6248
查看次数

尽管从chrome本地存储中获取了未设置的变量,chrome.runtime.lastError仍然是'UNDEFINED',

我试图检查是否已在chrome.storage.local中设置了键值对.因为我在这里采取了类似的问题的帮助.这里我试图从存储中获取的变量尚未设置.当我尝试使用lastError捕获错误.它是未定义的,而假设由于读取先前未设置的变量(根据我用googled)的错误而定义和设置.请在读取尚未设置的变量时帮助我检测错误.

的manifest.json

{
    "name": "TestExtension",
    "version": "1.0",
    "manifest_version": 2,
    "background": {
        "scripts": ["jquery.js", "background.js"]
    },

    "description": "Test the extension features here",
    "icons": {
        "16": "images/16x16.png",
        "48": "images/48x48.png",
        "128": "images/128x128.png"
    },

    "page_action": {
        "default_icon": {
            "19": "images/19x19.png",
            "38": "images/38x38.png"
        },
        "default_title": "Test Plugin default title",
        "default_popup": "popup.html"
    },

    "permissions": ["tabs", "storage", "http://*/*", "https://*/*"]
}
Run Code Online (Sandbox Code Playgroud)

background.js

function showTheExtension(tabId, changeInfo, tab) {
    console.log("Extension loaded");
    chrome.pageAction.show(tabId);
} // ---EOF checkForValidUrl---
chrome.tabs.onUpdated.addListener(showTheExtension);
Run Code Online (Sandbox Code Playgroud)

popup.js

$('document').ready(function() {
    chrome.storage.local.get('testVar1', function(result) {
        if (chrome.runtime.lastError) { …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome google-chrome-extension

1
推荐指数
1
解决办法
3130
查看次数