Javascript 如何设置用户';s图像作为chrome扩展的背景

Javascript 如何设置用户';s图像作为chrome扩展的背景,javascript,html,google-chrome-extension,Javascript,Html,Google Chrome Extension,因此,这个选项应该做的是让用户上传一个带有的文件(一个图像)(这很有效),但是当用户打开一个新选项卡或关闭当前选项卡时,如何让背景图像保持不变呢 下面是设置背景图像的JS: document.getElementById('background-image').addEventListener('change', readURL, true); function readURL(){ var file = document.getElementById("background-image"

因此,这个选项应该做的是让用户上传一个带有
的文件(一个图像)(这很有效),但是当用户打开一个新选项卡或关闭当前选项卡时,如何让背景图像保持不变呢

下面是设置背景图像的JS:

document.getElementById('background-image').addEventListener('change', readURL, true);
function readURL(){
   var file = document.getElementById("background-image").files[0];
   var reader = new FileReader();
   var readFile = reader.readAsDataURL(file);
   reader.onloadend = function(){
     document.getElementById("main-background-image").style.backgroundImage = "url(" + reader.result + ")";        
   }

   if(file){
      reader.readAsDataURL(file);
    }else{
    }
} 

再次设置当前选项卡的图像,只要用户不点击。是否可以保留用户的背景图像以备将来和其他选项卡使用?

我的解决方案基于另一个stackoverflow问题:

在我插入这段代码之后:

window.onload=function(){
var el = document.querySelector('body');
el.style.backgroundImage = 'url(' + localStorage['foo'] + ')';

只需将reader.result保存在chrome.storage.local(异步)或localStorage(同步)中即可。很抱歉,我不确定将reader.result分配到if语句中的何处或其他地方?要分配reader.result,将类似于`localStorage[“background image”]=reader.result;`。
window.onload=function(){
var el = document.querySelector('body');
el.style.backgroundImage = 'url(' + localStorage['foo'] + ')';