He escrito una extensión de Chrome simple que consiste básicamente en una ventana emergente, la página de contenido y una página html (llamada 'informe') que la extensión completará con datos al hacer clic en un botón específico en la ventana emergente.
Para resumir, hay un momento en el que necesito enviar 2 var diferentes del script de contenido a la página de informes. Estoy usando chrome.storage.local.get para este propósito, pero parece que solo puedo recuperar una de las 2 claves que estoy pasando.
Aquí está el código del script de contenido :
// first part of script where I define what rankingArray and logsArray are function saveLogs() { chrome.storage.local.set({ ranking: rankingArray }, function() { console.log("chrome.storage.local.set on rankingArray"); }); chrome.storage.local.set({ logs: logsArray }, function() { console.log("chrome.storage.local.set on logsArray"); }); }y aquí está el código de la página report.js (actuando, obviamente, en report.html):
function getRecords() { chrome.storage.local.get(['ranking', 'logs'], function(result){ var obj = result.ranking; var test = result.logs + ""; console.log('logs:\n' + test); // this one actually print on the console of report.html console.log('ranking:\n' + obj); // this one returns empty ('ranking: ') // more stuff to do with obj and test }); console.log("end of - @getRecords()"); } así que revisé los nombres de las claves y todo varias veces, pero no puedo entender qué impide que esto funcione.
Mi duda ahora es esta: ¿es correcto usar chrome.storage.local.get como lo estoy haciendo? ¿Puede recuperar 2 conjuntos diferentes de valores al mismo tiempo?
La pregunta se puede cerrar: según mi comentario anterior, el problema se debió a un error en la lógica del script. Básicamente, tenía mi secuencia de comandos recargando la página de contenido antes de llegar a las instrucciones en las que se llenó rankingArray, una vez corregido, todo funcionó como se esperaba.