chrome.storage.local.get导致异常

时间:2013-11-12 21:39:00

标签: javascript google-chrome-extension

我正在尝试将pair pageUrl:imageUrl保存到chrom本地存储中。这是代码:

    function saveImage (href, urlImage)
    {
        var dataObj = {href:urlImage};
        dataObj[href] = urlImage;
        chrome.storage.local.set(dataObj);
        console.log("Image url has been saved into storage "+href);

    }

    function tryLoadCachedImageUrl(hrefObj)
    {
        console.log("Trying to load image from storage: "+hrefObj.href);
        chrome.storage.local.get(hrefObj.href, 
        function(result){   
                loadImages(result,hrefObj);
        });

    }

chrome.storage.local.get导致异常:

  

对storage.get的响应错误:ReferenceError:未定义obj

hrefObj.href包含等于pageUrl的字符串,该字符串已保存在saveImage

我做错了什么?

1 个答案:

答案 0 :(得分:0)

[对于在此页面上遇到类似情况的任何人]

错误在loadImages。它似乎试图访问未定义的obj变量。


顺便说一下,这行代码:var dataObj = {href:urlImage};
相当于:dataObj[href] = urlImage;
但要:dataObj["href"] = urlImage;(显然不是你想要的)

预期的方式是:

var dataObj = {};   // <-- create an empty object
dataObj[href] = urlImage;   // <-- the value of the `href` variable
                            //     is used as the key (not the string "href")

[ 注意:这不会导致问题,这只是不好的做法 - 如果没有别的话会“伤害”代码清晰度。]