如何在Chrome、Firefox和IE中捕获返回按钮事件?

3

我需要捕获用户点击浏览器的后退按钮(IE、Chrome和Firefox)。

我不希望当用户按下浏览器的后退按钮时调用onbeforeunload事件。


1
可能是在浏览器中检测后退按钮点击的重复问题。 - MaVRoSCy
1
这个问题已经有一个在SO上的带答案的问题了:https://dev59.com/8F8e5IYBdhLWcg3wYJiu - lins
这类问题有多个答案,请查看以下链接: http://stackoverflow.com/search?q=Javascript+back+button - Henrik
你能否建议我从你提供的链接中选择一个,因为我找不到我的问题的答案。 - user2078643
2个回答

3

更新 在下面的函数中,当您点击链接时,您将看到事件被触发...现在在单击后退按钮后,您将再次看到事件被触发。

JSFiddle

$(window).bind( "hashchange", function(e) {
  alert()
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://github.com/cowboy/jquery-bbq/raw/v1.2.1/jquery.ba-bbq.min.js"></script>

<nav id="siteNav">
<ul>
<li class="nav1"><a href="#landing" title="Home">Home</a>
<li class="nav2"><a href="#products" title="Products">Products</a>
<li class="nav3"><a href="#about-us" title="About Us">About Us</a>
<li class="nav4"><a href="#sign-up" title="Sign Up">Sign Up</a>
<li class="nav5"><a href="" title="Videos">Videos</a>
</ul>
</nav>

使用hashchange事件:
window.addEventListener("hashchange", function(e) {
  // ...
})

谢谢您的回复,但您可以详细说明一下吗? - user2078643
@user2078643 请检查 :) - Tushar

1
我之前也在寻找类似的东西,但浏览器的返回按钮事件无法监听。不过,如果方便的话,您可以使用jQuery(或JavaScript)并使用.unload()方法。 Jquery .unload() API

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