在JS中通过Chrome扩展程序保存和读取数据

时间:2019-11-05 15:55:14

标签: javascript google-chrome-extension storage google-chrome-storage

简单的任务。用户可以在Google chrome扩展程序内部输入其登录表单,然后单击按钮-登录,然后我应该将该登录名保存到存储中。下次,当用户打开扩展名时,登录名应出现在输入中。用户可以通过输入新的登录结束单击按钮来更改它。问题在于getChanges没有收到任何东西。

HTML:

<!doctype html>
<html>
    <head>      
        <script src="jquery.min.js" type="text/javascript"></script>
    </head>
    <body>      
        <input type="text" id="login" placeholder="login">
        <button id="doLogin">Login</button>          
        <script src="popup.js"></script>  
    </body>
</html>

popup.js:

document.getElementById("doLogin").addEventListener("click", doLogin);

var extratedLogin= getChanges('myLogin');
$('#login').val(extratedLogin);

function getChanges(name) {  
    chrome.storage.local.get(name, function(result) {
      console.log('myLogin= '+JSON.stringify(result));
      return result.key;
    });
}

function saveChanges(name,value) {   
    chrome.storage.local.set({name: value}, function() { 
        console.log('Settings saved for '+ name);
    });
}
function doLogin(){
    //do something
    saveChanges('myLogin', $('#login').val());
}

manifest.json:

"permissions": ["storage", ...]

1 个答案:

答案 0 :(得分:0)

错误是语法。这是正确的保存和加载

window.onload = function() {
        chrome.storage.local.get(['mylogin'], function(items) {
            console.log('Settings retrieved ', items);
            $('#login').val(items['mylogin']); 
        });
    }      

    function doLogin(){          
        chrome.storage.local.set({'mylogin': $('#login').val()}, function() { 
            console.log('Fields data was saved.');
        });
    }