【发布时间】:2016-01-22 15:14:25
【问题描述】:
我正在开发一个网站,其中 url 参数根据用户操作进行更新,据此我更新网页而不刷新。 考虑一下电子商务场景,当用户点击过滤器时 url 会发生变化,然后会显示更新的产品。
现在的问题是,当用户点击浏览器的后退按钮时,浏览器会返回之前的 url 参数,但页面并没有改变。我还想根据单击后退按钮后更改的 url 参数更改页面。
我已经尝试过这个解决方案:
$($window).on('popstate', function (e) {
// Update the page also
});
这段代码的问题是,它会在 url 更改时触发,这意味着它不关心是否单击了浏览器后退按钮,或者 url 是否正在使用 jQuery 更改。因此,如果我根据用户交互更改 url,popstate 回调将被调用,我的自定义函数也将被调用。为了更新我使用 https 请求的页面,所以 http api 被调用了两次。
有没有办法检查是否只点击了“返回按钮”?
【问题讨论】:
-
谢谢,但那是 jquery mobile 的。我没有使用 jQuery Mobile(我希望我可以 :))
标签: javascript jquery angularjs back-button url-parameters