首先做一个提交到本地存储的表单及一个用来显示本地localStorage信息的表格…代码如下:
<h2> 本地存储用 </h2>标题: <input id="title" name="title" type="text" size="60" style="margin-left:32px;margin-bottom:5px;"/> <br />事件信息: <textarea id="content" name="content" cols="50" rows="8"> </textarea> <br />添加人:<input id="user" name="user" type="text" style="margin-left:22px;margin-bottom:5px;"/> <br /><input type="button" value="添加事件" onclick="addMsg();" /><input type="button" value="清除事件" onclick="clearMsg();" /><hr /><table style="width: 800px;border:1px solid black;"><tr><th>标题</th><th>事件内容</th><th>添加人</th><th>添加事件</th></tr><tbody id="show" style="text-align:center;"></tbody></table>
效果如下:
检查一下浏览器的本地存储:(google (F12))
接下来添加功能
点击添加事件,会把信息传递到浏览器的localStorage中.
点击清除事件,会被本地的值都删除.
代码如下:
var loadMsg = function(){var tb = document.getElementById("show");tb.innerHTML = "";for(var i = 0, j = 0; i< localStorage.length; i++){var key = localStorage.key(i);if(key.indexOf('_fk') == 0){var date = new Date();date.setTime(key.substring(3));var datestr = date.toLocaleDateString()+ " " + date.toLocaleTimeString();var msgStr = localStorage[key];var msg = JSON.parse(msgStr);var row = tb.insertRow(j++);row.insertCell(0).innerHTML = msg.title;row.insertCell(1).innerHTML = msg.content;row.insertCell(2).innerHTML = msg.user;row.insertCell(3).innerHTML = datestr;}}}var addMsg = function(){var titleElement = document.getElementById("title");var contentElement = document.getElementById("content");var userElement = document.getElementById("user");var msg = {title: titleElement.value,content: contentElement.value,user: userElement.value}var time = new Date().getTime();localStorage['_fk' + time] =JSON.stringify(msg);titleElement.value = "";contentElement.value = "";userElement.value = "";alert("数据已保存.");loadMsg();}function clearMsg(){localStorage.clear();alert("全部事件信息已被清除");loadMsg();}window.onload = loadMsg();
点击添加试试:
可以看见,在alert框弹出之后添加的内容出现了。
在打开调试台看看.
可以看见本地存储中确实存在,
可以尝试关闭网页后再打开…
数据还是存在…
参考《疯狂H5+CSS3+JS讲义》(第2版) P541~P542