event.state == null и Как правильно запустить pushState в Firefox? - PullRequest
0 голосов
/ 16 марта 2019
$('.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:)?

1 Ответ

0 голосов
/ 19 марта 2019

Здесь ответили: 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.

Возможно, вы получили нулевое значение, когда история вернулась в исходное состояние.

Хотя firefox не будет выдвигать состояние initail, вывсе еще может заставить Firefox выдвинуть исходное состояние с помощью вызова history.replaceState ().

См. ссылку для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...