html5—历史管理(通过跳转页面))

历史管理(通过跳转页面)

window.onhashchange
— 改变hash值(#x)来管理

用途:可以做成不改变网址,仅改变hash值进行历史管理(window.location.hash)

练习:做一个随机彩票页面,可以通过历史管理返回
即从1~35随机选择7个数,但这7个数不能出现重复

<body>
<input type="button" value="生成彩票" >
<span></span>
<script>
    var oBtn=document.getElementsByTagName('input')[0];
    var oSpan=document.getElementsByTagName('span')[0];
    var json={};
    function randomticket(howL,num){
        var arr=[];
        var newArr=[];
        for(var i=0;i<howL;i++){
            arr.push(i+1);
        }
        for(var i=0;i<num;i++){
            newArr.push(arr.splice(Math.floor(Math.random()*arr.length),1));
            }//Math.random()*arr.length得到一个1~35中的随机数,math.floor()向下取整,arr.splice(Math.floor(Math.random()*arr.length),1)返回的是被删除的这个数,整行的意思是将产生的这个随机整数从arr数组中删去,并将这个数存入到newArr数组中,这样可以避免产生重复的随机数 
}
oBtn.onclick=function(){
            var arr1=randomticket(35,7);//arr1数组存的是newArr
            var iRan=Math.random();
            json[iRan]=arr1;//iRan这个随机数为json中的键,数组arr1为json中iRan这个键的值
            oSpan.innerHTML=arr1;
            window.location.hash=iRan;//将随机数iRan作为哈希值,则这个哈希值就是键
        }
        window.onhashchange=function(){//改变hash值(#x)来管理
            //alert(window.location.hash);
            oSpan.innerHTML=json[window.location.hash.substring(1)];//删除前面的#,通过键(hash值)将json中对应的值取出

        }
</script>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值