<!doctype html> <html> <head> <meta charset="gb2312"> <title>html5--js api-本地存储 web留言板</title> <style type="text/css"> *{margin:0; padding:0;} body,input{font-size:14px; line-height:24px; color:#333; font-family:microsoft yahei, song, arial, helvetica, tahoma, geneva;} h1{margin-bottom:15px; height:100px; line-height:100px; text-align:center; font-size:24px; color:#fff; background:#0051a1;} #content #post,#comment p{zoom:1;} #content #post:after,#comment p:after{display:block; height:0; clear:both; visibility:hidden; overflow:hidden; content:'.';} .transition{-webkit-transition:all 0.5s linear; -moz-transition:all 0.5s linear; -o-transition:all 0.5s linear; -ms-transition:all 0.5s linear; transition:all 0.5s linear;} #content{margin:0 auto; width:960px; overflow:hidden;} #content #post{margin-bottom:15px; padding-bottom:15px; border-bottom:1px #d4d4d4 dashed;} #content #post textarea{display:block; margin-bottom:10px; padding:5px; width:948px; height:390px; border:1px #d1d1d1 solid; border-radius:5px; resize:none; outline:none;} #content #post textarea:hover{border:1px #9bdf70 solid; background:#f0fbeb;} #content #post #postbt,#content #post #clearbt{margin-left:5px; padding:3px; float:right;} #comment{overflow:hidden;} #comment p{margin-bottom:10px; padding:10px; border-radius:5px;} #comment p:nth-child(odd){border:1px solid #e3e197; background:#ffd;} #comment p:nth-child(even){border:1px solid #adcd3c; background:#f2fddb;} #comment p span{display:inline; float:left;} #comment p .msg{width:738px;} #comment p .datetime{width:200px; color:#999; text-align:right;} </style> <script type="text/javascript"> var storage = { savedata:function()//保存数据 { var data = document.queryselector("#post textarea"); if(data.value != "") { var time = new date().gettime() + math.random() * 5;//gettime是date对象中的方法,作用是返回 1970年01月01日至今的毫秒数 localstorage.setitem(time, data.value + "|" + this.getdatetime());//将毫秒数存入key值中,可以降低key值重复率 data.value = ""; this.writedata(); } else { alert("请填写您的留言!"); } }, writedata:function()//输出数据 { var datahtml = "", data = ""; for(var i = localstorage.length-1; i >= 0; i--)//效率更高的循环方法 { data = localstorage.getitem(localstorage.key(i)).split("|"); datahtml += "<p><span class=\"msg\">" + data[0] + "</span><span class=\"datetime\">" + data[1] + "</span></p>"; } document.getelementbyid("comment").innerhtml = datahtml; }, cleardata:function()//清空数据 { if(localstorage.length > 0) { if(window.confirm("清空后不可恢复,是否确认清空?")) { localstorage.clear(); this.writedata(); } } else { alert("没有需要清空的数据!"); } }, getdatetime:function()//获取日期时间,例如 2012-03-08 12:58:58 { var iszero = function(num)//私有方法,自动补零 { if(num < 10) { num = "0" + num; } return num; } var d = new date(); return d.getfullyear() + "-" + iszero(d.getmonth() + 1) + "-" + iszero(d.getdate()) + " " + iszero(d.gethours()) + ":" + iszero(d.getminutes()) + ":" + iszero(d.getseconds()); } } window.onload = function() { storage.writedata();//当打开页面的时候,先将localstorage中的数据输出一边,如果没有数据,则输出空 document.getelementbyid("postbt").onclick = function(){storage.savedata();}//发表评论按钮添加点击事件,作用是将localstorage中的数据输出 document.getelementbyid("clearbt").onclick = function(){storage.cleardata();}//清空所有已保存的数据 } </script> </head> <body> <h1>html5--js api-本地存储 web留言板</h1> <div id="content"> <div id="post"> <textarea class="transition"></textarea> <input id="postbt" type="button" value="发表评论"/> <input id="clearbt" type="button" value="清空所有已保存的数据"/> </div> <div id="comment"></div> </div> </body> </html>
以上就是html5实现留言板的代码实例分享的详细内容。
