【发布时间】:2016-04-20 03:48:45
【问题描述】:
我正在尝试学习 History Web API,但在第一关就遇到了问题。
我可以让history.pushState 工作,但是popstate 有问题。在AJAX 页面加载后第一次点击时它工作正常,但如果我再次加载同一页面,我需要点击两次返回按钮。如果我再加载一次,我需要点击返回三次,以此类推。
这是我的代码:
$(function(){
var $main = $('#main');
$(window).on('popstate', function () {
loadPage(location.href);
});
$(document).on('click', 'a', function(){
var href = $(this).attr('href');
history.pushState({}, '', href);
loadPage(href);
return false;
})
loadPage = function(href){
$main.load(href);
}
})
【问题讨论】:
-
听起来你可能想要
.replaceState()... -
感谢您的建议。它现在无需多次点击即可工作。但是我仍然很好奇我的这段代码有什么问题,特别是因为我在网上看到了使用 pushState 的示例,并且不需要多次单击返回按钮。
-
猜我有点过头了。它没有做我想要的。后退按钮功能现在完全搞砸了。
-
如何多次加载同一个页面?只是一遍又一遍地点击同一个链接?
-
@ryan0319 是的,同一个链接一遍又一遍。
标签: javascript jquery ajax html5-history popstate