关于PopState的javascript历史记录
我试图理解HTML5历史对象。这是一个简单的例子,我从这里开始关于PopState的javascript历史记录,javascript,history,Javascript,History,我试图理解HTML5历史对象。这是一个简单的例子,我从这里开始 function addDialog(){ document.getElementById('d').style.display =''; history.pushState({name:"changed"},"","#newURL"); } window.onpopstate = function(e){ alert(e.state); }
function addDialog(){
document.getElementById('d').style.display ='';
history.pushState({name:"changed"},"","#newURL");
}
window.onpopstate = function(e){
alert(e.state);
}
我有一个id为d
的div
,其display
属性为none
。单击链接后,我将显示div并更改历史记录,以便加载新的url
当我复制粘贴新url时,popstate
事件被触发,我得到e.state
的null
据我所知,如果我加载新的urlhttp://example.com#newURL
,e.state
应该指向我使用pushstate推送的对象
如果我错了,请纠正我,并且我想知道何时填充
e.state
。在我测试时,e.state只会在单击后退或前进按钮时获得添加到历史记录中的弹出状态。否则,它将为您提供空值
您可以对URL使用参数,以便测试请求是来自历史记录调用还是来自位置栏中的URL
onpopstate = function(event) {
alert('popEvent: ' + event);
if(event.state){
setupPage(event.state);
} else {
setupPage(getQStringParam('zid'));
}
}