码迷,mamicode.com
首页 > Web开发 > 详细

html5 历史管理

时间:2016-06-04 22:06:37      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

1、onhashchange:改变hash值来进行历史管理。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6     </head>
 7     <body>
 8         <input type="button" value="随机选择"  id="btn" />
 9         <div id="div1"></div>
10     </body>
11 </html>
12 <script>
13     window.onload = function(){
14         var oBtn = document.getElementById("btn");
15         var oDiv = document.getElementById("div1");
16         window.json = {};
17         oBtn.onclick = function(){
18             var key = Math.random();
19             var value = randomNum(35,7);
20             json[key] = value;
21             //oDiv.innerHTML = value;
22             window.location.hash = key;
23         }
24         
25         window.onhashchange = function(){
26             var hashValue = window.location.hash.substring(1);
27             if(!hashValue)return;
28             oDiv.innerHTML = json[hashValue];
29         }
30     }
31     
32     function randomNum(totlaNum,resultNum){
33         var totalArray = new Array();
34         var resultArray = new Array();
35         for(var i = 0 ;i < totlaNum;i++){
36             totalArray.push(i);
37         }
38         
39         for(var i = 1; i<= resultNum;i++){
40             resultArray.push(totalArray.splice(Math.floor(Math.random()*totalArray.length),1));
41         }
42         return resultArray;
43     }
44 </script>

 2、history+pushState+ popstate事件:需要在服务器下运行。网址是虚假的,需要服务器指定对应页面,否则刷新找不到页面。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6     </head>
 7     <body>
 8         <input type="button" value="随机选择"  id="btn" />
 9         <div id="div1"></div>
10     </body>
11 </html>
12 <script type="text/javascript">
13     window.onload = function(){
14         var oBtn = document.getElementById("btn");
15         var oDiv = document.getElementById("div1");
16         window.json = {};
17         oBtn.onclick = function(){
18             var value = randomNum(35,7);
19             //pushState接收三个参数 :数据  标题(都没实现)  地址(可选)
20             window.history.pushState(value,"");
21             oDiv.innerHTML = value;
22         }
23         
24         window.onpopstate = function(ev){
25             oDiv.innerHTML = ev.state;
26         }
27         
28     }
29     
30     function randomNum(totlaNum,resultNum){
31         var totalArray = new Array();
32         var resultArray = new Array();
33         for(var i = 0 ;i < totlaNum;i++){
34             totalArray.push(i);
35         }
36         
37         for(var i = 1; i<= resultNum;i++){
38             resultArray.push(totalArray.splice(Math.floor(Math.random()*totalArray.length),1));
39         }
40         return resultArray;
41     }
42 </script>

 

html5 历史管理

标签:

原文地址:http://www.cnblogs.com/tengri/p/5559578.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!