I imagine you are trying to do something like - get/set options between background and popup. This is how I handled that:
popup.js
document.addEventListener('DOMContentLoaded', function () {
chrome.extension.sendMessage({"msg":"getOptions"}, function(response){
$('#clientId').val(response.options.clientId);
});
$("#setOptions" ).on("click", function(){
chrome.extension.sendMessage({
"msg":"saveOptions",
"options":{ "clientId" : $('#clientId').val() }
}); //sengMessage
}); //on
}); //addEventListener
background.js
chrome.extension.onMessage.addListener(function (request, sender, sendResponse) {
if (request.msg == "getOptions") {
var options = {
clientId : localStorage.getItem('clientId') || ""
};
sendResponse({"msg" : "setOptions", "options" : options})
}
in some cases sendResponse
will not work, i.e. when reading cookies from background page, so instead of using it you would sendMessage
instead.