我的一个小黑人 2014-09-20
作者:zccst
现在的开发,越来越倾向于页面内跳转,这种情况下需要更新自己的知识,来实现页面内跳转。history就是解决这个问题的。
HTML5有两种解决办法:
1,onhashchange
用到了window.loaction.hash对象(存,取)
2,history
(1)pushstate三个参数:数据,标题(为空),url(可选)。
(2)popstate是一个事件,读取event.state数据
注意:url是虚假的。用户不能实际找到。
本质上:两种方式都是存值+取值事件。简化后就是:
window.loaction.hash=srcArr;
window.onhashchange=function(){
varval=window.loaction.hash;
}
和
history.pushState=srcArr;
window.onpopstate=function(event){
varval=event.state;
};
详情参考如下参数随机数例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script type="text/javascript"> window.onload=function (){ var oInput = document.getElementById("input1"); oInput.onclick=function(){ var oDiv = document.getElementById("div1"); var num = generateNum (6); //onhashchange window.location.hash = num; window.onhashchange = function(){ oDiv.innerHTML = window.location.hash.substring(1); } //history /* history.pushState(num, ''); window.onpopstate = function(event){ oDiv.innerHTML=event.state; }*/ oDiv.innerHTML=num; //生成随机数 function generateNum (num){ var ret = []; for (var i = 0; i < num; i++) { ret.push(Math.ceil(100*Math.random())); }; return ret; } } } </script> </head> <body> 中奖号码: <div id="div1"></div> <input type="button" value="生成随机号码" id="input1" /> </body> </html>
如果您觉得本文的内容对您的学习有所帮助,您可以微信: