J'essaie de stocker une liste de certaines valeurs dans"Stockage local de Chrome à utiliser dans une extension Chrome. Comme chaque liste est corrélée à une URL, j’essaie d’utiliser l’URL en tant que clé dans le magasin de valeurs-clés. Cependant, pour une raison quelconque set()
semble échouer lorsqu’on utilise une URL comme clé (même si typeof(url_variable)
révèle que c’est juste une chaîne), mais si j’utilise une chaîne artificielle telle que "hello"
Je suis en mesure de récupérer l’objet stocké normalement.
Existe-t-il une restriction quant à l'utilisation d'URL en tant que clé? Il n’en est pas fait mention dans l’API.
Il convient de noter que Chrome n'est pas "paramétré runtime.lastError
, la recherche échoue simplement lorsque j'essaie de get()
la clé qui était auparavant set()
avec une URL.
Ceci est le code, pour référence:
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);
}
});
}
});
}
Réponses:
0 pour la réponse № 1Que diriez-vous de créer l'objet d'abord comme ça Comment utiliser chrome.storage dans une extension chrome en utilisant la valeur d'une variable comme nom de clé?
Aussi peut-être essayer sauf l'exception au lieu d'utiliser un bloc if?