带有数组的 HTML 5 本地存储 [重复]

Posted

技术标签:

【中文标题】带有数组的 HTML 5 本地存储 [重复]【英文标题】:HTML 5 Local Storage with array [duplicate] 【发布时间】:2019-01-29 07:15:54 【问题描述】:

var Words = ['little', 'lump', 'house', 'begs', 'software']; // Word Array

var word = Words[Math.floor(Math.random() * Words.length)]; // calls random word
console.log(word); 
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link href="Css.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="Javascript.js"></script>
</head>

<body>
	<body>
             
              <h1 class="gamefunc">Add words here!</h1>
              <form class="title" id="frm1">
              <br>
                Word: <input type="text" name="newWord" id="words">
				  <br>
				  <br>
				  <button type="button" class="btn4" onclick="myFunction()">Submit Word</button>
				  <br>
				 
				  <a href="Home.html"><button class="btn4" id="addWord" type="button">Home</button></a>
              </form>
              <br>
<script>
function myFunction()
              var x = document.getElementById("words").value;
              console.log(x);
              Words.push(x);
			 
	
              console.log(Words)

</script>


</body>
</html>

我已经在我的代码中将单词推送到一个数组,但我想要实现的是能够在本地或会话中将推送的单词存储在数组中,这样当我在我的 html 页面之间进行更改时,新添加的单词将在数组

【问题讨论】:

【参考方案1】:

一种选择是使用sessionStorage,如下所示:

function myFunction() 
  var x = document.getElementById("words").value;
  console.log(x);
  Words.push(x);

  sessionStorage.setItem('Words', Words);

  console.log(Words)


var Words = sessionStorage.getItem('Words');

if (Words == null) 
  Words = ['little', 'lump', 'house', 'begs', 'software']; 
 else 
  Words = Words.split(',');
<h1 class="gamefunc">Add words here!</h1>
<form class="title" id="frm1">
  <br> Word: <input type="text" name="newWord" id="words">
  <br>
  <br>
  <button type="button" class="btn4" onclick="myFunction()">Submit Word</button>
  <br>

  <a href="Home.html"><button class="btn4" id="addWord" type="button">Home</button></a>
</form>

请注意,由于沙盒模式,您将无法在 Stack Overflow 上运行此 sn-p,但如果您在浏览器中本地运行此程序,您会看到它会按预期运行。

【讨论】:

@AuxTaco 不错。我已经调整了答案来解决这个问题。

以上是关于带有数组的 HTML 5 本地存储 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

本地储存(localStorage)记录

iOS自己定义对象保存到本地文件

HTML5的local storage存储的数据到底存到哪去了

Swift - 如何将本地存储的对象数组(文件管理器)转换为较新的对象? (带有附加属性)

将本地文本文件读入 JavaScript 数组 [重复]

HTML5本地存储数据是不是按域分隔存储[重复]