【发布时间】:2016-11-22 17:25:51
【问题描述】:
我想在页面发生任何事情之前抓住浏览器的后退按钮。我研究了很多解决方案,有些在上一页完全加载时捕获了这个事件,我不需要那个。我需要在任何事情发生之前抓住它。 我找到了另一个很好的解决方案,
$(window).on('popstate', function() {
var hashLocation = location.hash;
var hashSplit = hashLocation.split("#!/");
var hashName = hashSplit[1];
if (hashName !== '') {
var hash = window.location.hash;
if (hash === '') {
alert('Back button was pressed.');
}
}
});
window.history.pushState('forward', null, '#b');
}
非常有效的解决方案,这个catch back 按钮事件甚至在页面发生任何事情之前,但是用我的URL 写#b,这是不可接受的。
在页面发生任何事情之前,需要帮助来捕捉任何浏览器的后退按钮。
实际上,我的完整故事是,当按下返回时,我在 cookie 中存储了一个变量。很快脚本首先在页面加载时命中,我检查 cookie,然后重新加载整个页面。这样服务器端就会生成调用而不是缓存。任何替代解决方案?
我找了很长时间的解决方案,但还没有找到有效的解决方案。 提前致谢。
【问题讨论】:
-
没有办法真正抓住它......
-
我只想设置一个cookie,当有人按下返回按钮时,真的没有办法吗?
-
你能在卸载时设置cookie吗?
-
卸载被命中,当你只是重定向到另一个页面,所以没用。
-
实际上,我的完整故事是,当按下返回时,我在 cookie 中存储了一个变量。很快脚本首先在页面加载时命中,我检查 cookie,然后重新加载整个页面。这样服务器端就会生成调用而不是缓存。任何替代解决方案?
标签: javascript jquery