event.state == null以及如何在Firefox上正确运行pushState?

问题描述 投票:0回答:1
$('.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可以在单击后退按钮时显示警报(message = paged),但Firefox显示警报消息的空值,

因此,当单击后退按钮时,我无法使用onpopstate将前一页内容加载到Firefox。然后如何解决它或正确推送event.state,但不是firefox :)的空值?

javascript jquery html5 pushstate html5-history
1个回答
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不会推送初始状态,但您仍然可以强制Firefox使用history.replaceState()调用来推送初始状态。

请参阅链接查看更多细节

© www.soinside.com 2019 - 2024. All rights reserved.