代码之家  ›  专栏  ›  技术社区  ›  Hamdi Alp

镀铬。存储同步设置和获取失败

  •  0
  • Hamdi Alp  · 技术社区  · 8 年前

    当我放置任何数据并单击按钮时,我无法保存和获取数据。没有任何事情发生,也无法保存数据。

    只想保存2个值

    1. APIkey公司
    2. 是否启用复选框

    并保存它们

    我的main。js用于选项

    function saveSettings(e) {
    chrome.storage.sync.set({
        apiKey: apiKey.value,
        isEnabled: isEnabled.checked
    
    });
    }
    
    function restoreSettings(e) {
    chrome.storage.sync.get("apiKey").then(
        function(result) {
            alert('working');
            apiKey.value = result.apiKey || "";
        },
        function(error) {
            console.log(error);
        }
    );
    chrome.storage.sync.get("isEnabled").then(
        function(result) {
            isEnabled.checked = result.isEnabled
        },
        function(error) {
            console.log(error);
        }
    );
    }
    
    
    
    //restoreSettings();
    //saveButton.addEventListener("click", saveSettings);
    
    document.addEventListener('DOMContentLoaded', restoreSettings);
    document.getElementById('saveButton').addEventListener('click',
    saveSettings);
    

    和我的html

    <!DOCTYPE html>
    <html>
    <head>
    
    <title>Plugin Options</title>
    
    </head>
    <body>
    
    <img src="/icons/img1.png">
    
    <div>
    
    <form style="background-color:#000a1a">
    
    
        <h3>Change Settings</h3>
        <label>API Key : <input type="text" id="apiKey" /></label><br />
        <label>Enabled : <input type="checkbox" id="isEnabled" /></label><br />
        <input type="button" value="Save Settings" id="saveButton" class="button" />
    
    
    </form>
    </div>
    <script src="main.js"></script>
    </body>
    </html>
    

    我试过了 chrome.storage.local 也谢谢你的帮助

    1 回复  |  直到 8 年前
        1
  •  0
  •   Andreas Moldskred    8 年前

    首先确保您在清单中设置了正确的权限:

    "permissions": [
            "storage"
        ]
    

    然后获取值:

    chrome.storage.sync.get('myvalue', function(res){
    })
    

    哪里 res.myvalue 将是您正在寻找的内容。

    要设置值,请执行以下操作:

    chrome.storage.sync.set({'myvalue': true})