2017-04-19 31 views
0

我正在開發Chrome擴展,當用戶關閉擴展的彈出窗口時,我想保留用戶輸入數據。當擴展彈出失去焦點時,是否有任何可靠的方法使用local storage來做到這一點?彈出失去焦點時存儲數據

+3

使用'onbeforeunload'聽衆或只是做它立即'onchange'或'oninput'聽衆。 – wOxxOm

回答

0

我設法弄清楚了這一點。當我通過彈出卸載回調(檢測丟失的焦點)直接調用store函數時,它不起作用。當我在後臺頁面中進行存儲時管理這樣做。下面的示例代碼:

背景腳本:

function storeFormDataLocally(someData) { 
    if (someData != null) { 
     chrome.storage.local.set({ 
     'someDataKey': someData 
     }, function() { 
     console.log("data saved: " + someData) 
    }); 
    } 
    } 

彈出窗口:

addEventListener("unload", function(event) { 
    var background = chrome.extension.getBackgroundPage(); 
    var someData = "My data to store"; 
    background.storeFormDataLocally(someData); 
}, true);