如果我做這樣的事情在我的瀏覽器擴展程序,它工作正常:如何在Chrome本地存儲中使用動態密鑰獲取並設置?
chrome.storage.local.set({"Foo1": dataValue});
這是罰款:
chrome.storage.local.get("Foo1", callback);
但是,當我試圖抽象這些信息的功能,這樣我可以使用不同的針對不同情況的鍵名:
function saveLocalData(dataKey, dataValue){
chrome.storage.local.set({dataKey: dataValue});
}
saveLocalData("Foo1", "hello foo");
...然後這樣的:
function getLocalData(dataKey, callback){
chrome.storage.local.get(dataKey, callback);
}
getLocalData(dataKey, myCallbackFunction);
...無論是保存和得到看似成功,但在檢索我只是似乎有一個空的對象。我已經在Chrome開發工具中介紹了我的代碼,並檢查了返回的[Object] - 它不是null - 但它似乎是空的和無用的,並且如果它將我的數據放在腸的某個地方,似乎找不到它。
我甚至想這一點,但沒有更好的效果:
function getLocalData(dataKey, callback){
dataKey = "\"" + dataKey + "\"";
chrome.storage.local.get(dataKey, callback);
}
function saveLocalData(dataKey, dataValue){
dataKey = "\"" + dataKey + "\"";
chrome.storage.local.set({dataKey: dataValue});
}
必須有某種方式來抽象的本地存儲的getter和setter成一個函數,這樣我可以在一個鍵名和值傳遞(保存),然後稍後通過傳入正確的密鑰名稱來檢索所需的值。餅乾以這種方式工作,但本地存儲有某種我不理解的巫術。我只使用getLocalData()
的回調函數,因爲我不需要setter中的回調函數。我的回調正在工作 - 回調函數被輸入,我看起來似乎是空的[對象] - 它不只是空。
請幫忙,並提前致謝。
有道理,丹尼爾,謝謝。雖然這似乎是一個無意義的限制,迫使尷尬的解決方法。 – HerrimanCoder