无法将变量保存到localstorage中

时间:2016-02-07 01:31:24

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

我尝试将网址保存到我的Chrome扩展程序的localstorage中。 此URL是从弹出窗口中的文本输入字段输入的。 我只是无法获得保存新值的脚本。

继承我的代码:

popup.html:

<html>
  <head>
    <title>Favourite.es Settings</title>
      <link rel="stylesheet" href="/mdl/material.min.css">
      <script src="/mdl/material.min.js"></script>
      <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
      <link rel="stylesheet" href="/css/settings.css">
      <link rel="stylesheet" href="https://code.getmdl.io/1.1.1/material.blue-light_blue.min.css" />
  </head>
  <body>
      <script src="popup.js"></script>
      <div class="container">
        <img src="/img/Branding.png">
      </div>
      <div class="container">
        <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label" style="width: 80%; margin-left:30px;">
            <input class="mdl-textfield__input" type="text" id="bgurl">
            <label class="mdl-textfield__label" for="sample3">Background URL:</label>
          </div>
        <button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect" style="margin-left:30px" onclick="save();">
          Save
        </button>
      </div>
  </body>
</html>

popup.js:

function save(){
    console.log("Init SAVE");
    var bgurl = document.getElementById("bgurl");

    localStorage.setItem("bgurl", bgurl.value);
}

3 个答案:

答案 0 :(得分:0)

使用此方法管理以使其工作:

(popup.js)

function save(){
    console.log("Init SAVE");
    var bgurl = document.getElementById("bgurl");

    localStorage.setItem("bgurl", bgurl.value);
}

document.addEventListener('DOMContentLoaded', function() {
    var link = document.getElementById('btn');
    // onClick's logic below:
    link.addEventListener('click', function() {
        save();
    });
});

答案 1 :(得分:0)

之前我遇到过这个问题。

尝试将最后一行代码更改为

window.localStorage.setItem("bgurl", bgurl.value);

答案 2 :(得分:0)

这对我来说很好。如果第一个语句不起作用,请尝试第二个语句。检查Chrome控制台中是否有javascript错误。

if (window.localStorage) {

    localStorage.setItem("myKey", mykeyval);
    // OR this works too
    localStorage["myKey"] = mykeyval;

}