为什么调用History.pushState()(或.replaceState())会触发'popstate'事件?

3

我正在根据 AJAX 调用更改 URL。

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

我还在我的JS代码中写了一个popstate事件。

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

一旦调用pushState,就会触发popstate事件。如何防止这种情况发生?

你能添加一个最小化、完整和可验证的示例吗?因为对我来说它按预期工作:https://jsfiddle.net/j0gywrdh/ - Andreas
1个回答

0
我遇到了同样的问题 - 通过添加解决了它

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

返回调用事件的处理程序(它们处理HTML a元素上的单击事件,并通过jquery跟踪鼠标事件似乎想要触发popState)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接