2017-05-19 5 views
1

クロムに小さなエクステンションを作成しています。私はchrome.storageを使用しようとしています。 options.jschrome.sync.storage.get()の値を保存して使用します。

function save_options() { 
     var color = document.getElementById('color').value; 
     chrome.storage.sync.set({ 
     favoriteColor: color 
     }, function() { 
     console.log("Color saved"); 
     }); 
    } 

しかし、私は使用するために、問題に私のcontent_script.js上でこの情報を持っている:私のオプション]ページで は私がcontent_scriptになりますいくつかの情報を保存しました。私が試した:

var color = null; 
    chrome.storage.sync.get('favoriteColor', function(item){ 
     color = item.favoriteColor; 
     //alert(color); //Here works; 
}); 

alert(color); // here doesn't work 

答えて

0

chrome.storage APIは、あなたが常に未定義得る理由です、変数が定義される前であっても、それが実行beeingて、アラート非同期意味です。 メソッドが終了するまで待つ必要があります。 colorが定義された後にのみ実行されるcontent_script.jsでコールバック関数を設定することができます:

var color = null; 
     chrome.storage.sync.get('favoriteColor', function(item){ 
      color = item.favoriteColor; 
      alertColor(color); 
    }); 

    function alertColor(color){ 
     alert(color); 
    } 
関連する問題