javascript本地存储无法正常工作

时间:2014-07-17 16:30:32

标签: javascript jquery html

我无法在javascript中使用本地存储空间。这是我第一次尝试本地存储。我有两个单独的HTML文档,每个文档都有自己的javascript代码集。

Doc 1 Javascript:

<script>

function callData() {
document.getElementById("1").innerHTML = localStorage.getItem("name1");
document.getElementById("2").innerHTML = localStorage.getItem("name2");
document.getElementById("3").innerHTML = localStorage.getItem("name3");
setNames();
}

function setNames() {
var 1st = document.getElementById("1").innerHTML;
var 2nd = document.getElementById("2").innerHTML;
var 3rd = document.getElementById("3").innerHTML;
if (typeof(Storage) != "undefined") {
    localStorage.setItem("1", 1st);
    localStorage.setItem("2", 2nd);
    localStorage.setItem("3", 3rd);
}
    else {
    alert("Sorry, your browser does not support Web Storage"); }
}   

</script>

Doc 1 Html

<body onLoad = "callData()">
<a style="text-align:left;" href= cameraApp.html>New Contact</a>
<h1 style="background-color:black; color:white; font-family:helvettica;">Address Book</h1>   
<h3 style="background-color:blue; color:white; font-family:helvettica;">Contacts</h3>
<a id=1></a>
<a id=2></a>
<a id=3></a>
</body

Doc 2 JavaScript

<script>
  function done() {
  var 1st = localStorage.getItem("1");
  var 2nd = localStorage.getItem("2");
  var 3rd = localStorage.getItem("3");

  var name = document.getElementById('nameTextfield').value;


  if(1st = "") {
    localStorage.setItem("name1",name);
    alert("Success, Contact created");
    } else if(2nd = "") {
      localStorage.setItem("name2",name);
      alert("Success, Contact created");
    } else if(3rd = "") {
      localStorage.setItem("name3",name);
      alert("Success, Contact created");
    } else {
      alert("Sorry, Maximum contact limit reached");
    }
  }
</script>

</head>

Doc 2 HTML

<body> 
    <a style="text-align:left;" href= phonebook.html>Back</a>
 <h1 style="background-color:black; color:white; font-family:helvettica;">Create a Contact</h1><br>

<form name="info">

<p id="name">Name: </p><input id="nameTextfield" type="textfield"/><br>

</form>
<button onclick="done()">Done</button>
</form>
</body>

Doc 2旨在存储用户提供的名称并将其传递给本地存储。然后,Doc 1应显示已存储在本地存储中的名称。每当我尝试使用它时,在单击doc 2上的完成按钮后,页面就会刷新,当我返回doc 1时,不会添加任何名称。我正在使用Android SDK进行编码。我尝试使用本地存储来获取hello world文档,因此我知道它适用于SDK。

1 个答案:

答案 0 :(得分:1)

变量名不能以数字开头(如果我错了,纠正我)。

哪个投掷错误

Uncaught SyntaxError: Unexpected token ILLEGAL.

此外,您通过比较空字符串("")来检查该值是否存在,这也不起作用,

你可以改为检查

if(!variable){
 //variable does not exist
}

修复这些似乎解决了问题

Doc1

Doc2