Почему вызов History.pushState() (или.replaceState()) вызывает событие "popstate"?

Я изменяю URL в зависимости от вызова AJAX.

window.history.pushState("", "", ''+newUrlWithParameters);

Также у меня есть событие popstate, написанное в моем JS.

$(window).on('popstate', function(e) {
   //... do this
});

Как только вызывается pushState, срабатывает popstate. Как это предотвратить?

0 ответов

У меня была такая же проблема - решил, добавив

event.preventDefault();
event.stopPropagation();

в обработчик вызывающего события (они обрабатывают событие щелчка на элементе HTML a, и, отслеживая через jquery, событие mouseevent, похоже, должно было вызвать popState).

Другие вопросы по тегам