/ / Używanie adresu URL jako klucza w lokalnym słowniku pamięci Chrome - javascript, rozszerzenie google-chrome

Używanie adresu URL jako klucza w lokalnym słowniku pamięci Chrome - javascript, google-chrome-extension

Usiłuję zapisać listę niektórych wartościLokalna pamięć Chrome do użytku w rozszerzeniu Chrome. Ponieważ każda lista koreluje z adresem URL, próbuję użyć adresu URL jako klucza w magazynie kluczy i wartości. Jednak z jakiegoś powodu set() wydaje się nie działać, gdy używasz adresu URL jako klucza (chociaż typeof(url_variable) ujawnia, że ​​to tylko ciąg), ale jeśli użyję jakiegoś wymyślonego ciągu, takiego jak "hello", Jestem w stanie normalnie odzyskać przechowywany obiekt.

Czy istnieje ograniczenie używania adresów URL jako klucza? W API nie ma o tym żadnej wzmianki.

Należy zauważyć, że Chrome nie jest ustawiony runtime.lastError, wyszukiwanie kończy się niepowodzeniem, gdy próbuję get() klucz, który był wcześniej set() z adresem URL.

Oto kod dla odniesienia:

function addNode(url, referrer) {
nodes = chrome.storage.local;
edge = {
in_node: referrer,
timestamp: Date()
};

nodes.get(url, function(current_node){
console.log(current_node);
if ( $.isEmptyObject(current_node) === false ) {
// never executes, because set doesn"t work
}
else {
console.log("set: "+url);
nodes.set({url:[edge]}, function(){
if ( chrome.runtime.lastError ) {
console.log(chrome.runtime.lastError);
}
else {
console.log("get: "+url);
chrome.storage.local.get(url, function(thing) {console.log(thing)});
console.log("Created new Node for url " + url + " and new edge from " + edge.in_node + " at time " + edge.timestamp);
}
});
}
});
}

Odpowiedzi:

0 dla odpowiedzi № 1

A może najpierw stworzysz obiekt w ten sposób? Jak korzystać z chrome.storage w rozszerzeniu chrome, używając wartości zmiennej jako nazwy klucza?

Może także spróbować oprócz wyjątku zamiast używać bloku if?