Сохранение и чтение данных из расширения Chrome в JS - PullRequest
0 голосов
/ 05 ноября 2019

Простое задание. Пользователь может ввести свой логин, чтобы сформировать внутри расширения 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 голосов
/ 07 ноября 2019

Была ошибка синтаксиса. Вот правильное сохранение и загрузка

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.');
        });
    }
...