【问题标题】:event.state== null and How to get pushState run correctly at Firefox?event.state== null 和如何让 pushState 在 Firefox 上正确运行?
【发布时间】:2019-03-16 13:41:18
【问题描述】:
$('.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 会显示警报消息的 null 值,

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

【问题讨论】:

标签: javascript jquery html pushstate html5-history


【解决方案1】:

这里已经回答了这个问题: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 推送初始状态。

查看链接了解更多详情

【讨论】:

    猜你喜欢
    • 2012-06-21
    • 2023-03-10
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 2017-09-17
    • 2021-11-09
    相关资源
    最近更新 更多