html5的onhashchange和history历史管理

现在的开发,越来越倾向于页面内跳转,这种情况下需要更新自己的知识,来实现页面内跳转。history就是解决这个问题的。

HTML5有两种解决办法:

1,onhashchange
用到了window.loaction.hash对象(存,取)


2,history

(1) pushstate 三个参数:数据,标题(为空),url(可选)。
(2) popstate是一个事件,读取event.state数据
注意:url是虚假的。用户不能实际找到。


本质上:两种方式都是存值+取值事件。简化后就是:
window.loaction.hash = srcArr;
window.οnhashchange=function(){
    var val = window.loaction.hash;
}

history.pushState = srcArr;
window.onpopstate=function(event){
    var val = event.state;
};


详情参考如下参数随机数例子:

Html代码   收藏代码
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    2. <html xmlns="http://www.w3.org/1999/xhtml">  
    3. <head>  
    4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
    5. <title>无标题文档</title>  
    6.   
    7. <script type="text/javascript">  
    8.   
    9. window.οnlοad=function (){  
    10.     var oInput = document.getElementById("input1");  
    11.     oInput.οnclick=function(){  
    12.         var oDiv = document.getElementById("div1");  
    13.         var num = generateNum (6);  
    14.   
    15.         //onhashchange  
    16.         window.location.hash = num;  
    17.         window.onhashchange = function(){  
    18.             oDiv.innerHTML = window.location.hash.substring(1);  
    19.         }  
    20.           
    21.   
    22.         //history  
    23.         /*  
    24.         history.pushState(num, '');  
    25.         window.onpopstate = function(event){  
    26.             oDiv.innerHTML=event.state;  
    27.         }*/  
    28.         oDiv.innerHTML=num;  
    29.   
    30.   
    31.         //生成随机数  
    32.         function generateNum (num){  
    33.             var ret = [];  
    34.             for (var i = 0; i num; i++) {  
    35.                 ret.push(Math.ceil(100*Math.random()));  
    36.             };  
    37.             return ret;  
    38.         }  
    39.     }  
    40. }  
    41.   
    42.   
    43. </script>  
    44. </head>  
    45.   
    46. <body>  
    47.     中奖号码:  
    48. <div id="div1"></div>  
    49.   
    50. <input type="button" value="生成随机号码" id="input1" />  
    51. </body>  
    52. </html

转载于:https://www.cnblogs.com/shsgl/p/4289925.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值