如何检测浏览器中的后退按钮点击
检测浏览器中的后退按钮点击,尤其是在利用 AJAX 的 Web 应用程序中,这是一个挑战。虽然 window.onbeforeunload 事件通常用于此目的,但它也会在浏览器重新加载等其他操作上触发,这是不希望的。
解决方案:
幸运的是,有一个优雅的解决方案,可以有效地区分后退按钮点击与重新加载和其他事件。以下是解决此问题的修改后的代码:
<code class="javascript">window.onload = function () { if (typeof history.pushState === "function") { history.pushState("jibberish", null, null); window.onpopstate = function () { history.pushState("newjibberish", null, null); // Handle back button clicks here }; } else { // For older browsers that don't support `pushState` var ignoreHashChange = true; window.onhashchange = function () { if (!ignoreHashChange) { ignoreHashChange = true; window.location.hash = Math.random(); // Handle back button clicks here } else { ignoreHashChange = false; } }; } };</code>
此解决方案适用于 Chrome 和 Firefox,提供更精确的方法来检测后退按钮点击,同时避免潜在的错误触发。
以上是如何区分后退按钮点击与浏览器重新加载和其他事件?的详细内容。更多信息请关注PHP中文网其他相关文章!