HTML5之历史管理

HTML5之历史管理

l  前进,后退

   触发历史管理 : 1.通过跳转页面  2.hash  3.pushState

•     onhashchange  :改变hash值来管理

 

实例:随机选彩票

<!DOCTYPE HTML>

<html>

<head>

<metahttp-equiv="Content-Type" content="text/html;charset=utf-8">

<title>无标题文档</title>

<script>

window.onload = function(){

      varoInput = document.getElementById('input1');

      varoDiv = document.getElementById('div1');

     

      varjson = {};

     

      oInput.οnclick= function(){

            

             varnum = Math.random();

            

             vararr = randomNum(35,7);

              

             json[num]= arr;

            

             oDiv.innerHTML= arr;

            

             window.location.hash= num;

            

      };

     

      window.οnhashchange= function(){

             //hash值与随机数相结合

             oDiv.innerHTML= json[window.location.hash.substring(1)];

            

      };

      //在1-iAll中选取iNow个随机数

      functionrandomNum(iAll,iNow){

            

             vararr = [];

             varnewArr = [];

 

             for(vari=1;i<=iAll;i++){

                    arr.push(i);

             }

            

             for(vari=0;i<iNow;i++){

                    newArr.push(arr.splice( Math.floor(Math.random()*arr.length) ,1) );

             }

            

             returnnewArr;

            

      }

     

};

</script>

</head>

 

<body>

<input type="button"value="随机选择" id="input1">

<div id="div1"></div>

</body>

</html>

 

•     history  :

–    服务器下运行

–    pushState:  三个参数 :数据  标题(都没实现)  地址(可选)

–    popstate事件 : 读取数据   event.state

–    注意:网址是虚假的,需在服务器指定对应页面,不然刷新找不到页面

 

 

 

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type"content="text/html; charset=utf-8">

<title>无标题文档</title>

<script>

window.onload = function(){

       var oInput= document.getElementById('input1');

       var oDiv =document.getElementById('div1');

      

       oInput.οnclick= function(){

             

              vararr = randomNum(35,7);

             

              history.pushState(arr,'',arr);

             

              oDiv.innerHTML= arr;

             

       };

      

       window.onpopstate = function(ev){

             

              oDiv.innerHTML= ev.state;

             

       };

      

      

       functionrandomNum(iAll,iNow){

             

              vararr = [];

              varnewArr = [];

              for(vari=1;i<=iAll;i++){

                     arr.push(i);

              }

             

              for(vari=0;i<iNow;i++){

                     newArr.push(arr.splice( Math.floor(Math.random()*arr.length) ,1) );

              }

             

              returnnewArr;

             

       }

      

};

</script>

</head>

 

<body>

<input type="button" value="随机选择" id="input1">

<div id="div1"></div>

</body>

</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值