1

ペア pageUrl:imageUrl を chrome ローカル ストレージに保存しようとしています。コードは次のとおりです。

    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 が定義されていません

pageUrlhrefObj.href には、保存されたものと等しい文字列が含まれていますsaveImage

私は何を間違っていますか?

4

1 に答える 1

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")

[: これは問題の原因ではありません。ただの悪い習慣です。他に何もなければ、コードの明瞭さを「損なう」ことになります。]

于 2013-11-14T10:17:08.650 に答える