您的位置:首页 > 其它

单页面 历史状态管理

2016-01-28 13:57 295 查看
历史状态管理API可以让你改变URL而不用载入一个新的页面
history.pushState({name:”Nicholas”}, “Nicholas’ page”, “nicholas.html”);
执行了这个方法以后,新的地址会被加到历史记录状态里,而且location.href也会反映新的地址。

后退按钮也会被激活,当后退按钮按下时,会触发popstate事件,事件对象有一个叫做state的属性,包含了传进来对象内容:

EventUtil.addHandler(window, “popstate”, function(event){
var state = event.state;
if (state){ //state is null when at first page load
processState(state);
}
});

修改state信息的方法:
history.replaceState({name:”Greg”}, “Greg’s page”);

确保自己做的URL在服务器有对应的地址,不然按刷新按钮会导致404

if (typeof history.pushState != 'undefined') {

// Async elements and that one-page-app snazziness

} else {

// It still works. Don't panic. Normal URLs and requests FTW.

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: