$('.btn').click(function(event){
var paged = $(this).attr("id");
history.pushState(paged, "", event.target.href);
$.ajax({
do something
}
});
});
window.onpopstate = function(event) {alert(event.state); };
使用Chrome,Safari,Firefox进行检查,
当单击后退按钮时,只有Chrome和Safari可以显示警报(消息=页面),但是Firefox显示警报消息的值为空,
因此,单击后退按钮时,无法使用onpopstate将上一页内容加载到Firefox。那么如何解决它或正确推送event.state,而不是firefox的空值:)?
答案 0 :(得分:0)
已在此处回答:https://lazyfox.io/task/b8r/event-state-null-and-how-to-get-pushstate-run-correctly-at-firefox
浏览器过去在页面加载时处理popstate事件的方式不同,但是现在它们的行为相同。 Firefox从不在页面加载时发出popstate事件。 Chrome一直使用到34版,而Safari直到10.0版。
当历史回到初始状态时,您可能会得到null。
尽管firefox不会推送初始状态,但您仍然可以通过history.replaceState()调用强制Firefox推送初始状态。
查看链接以获取更多详细信息