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

标签 javascript jquery history pushstate popstate

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

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

此外,我在 JS 中编写了一个 popstate 事件。

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

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

最佳答案

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

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

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

关于javascript - 为什么调用 History.pushState() (或 .replaceState())会触发 'popstate' 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41459747/

相关文章:

javascript - 社交网络分享按钮设置为基于分享数量和社交网络数量的基于百分比的高度?

javascript - 邮政编码到城市自动完成

javascript - Jquery 在鼠标悬停时每行显示不同的数据 ID

git - 在 git 中显示每个作者更改的行数

SQL 查询 - 在组中选择 'last updated' 记录,更好的数据库设计?

javascript - 从parentNode div拖放音频数据

javascript - TypeError : $(. ..).modalForm 不是函数

javascript - 使用 JavaScript 使按钮使用react(添加动画)

jquery - 选择 - 创建和选项不能一起工作

android - Android 快速搜索中的搜索历史记录