如何检测用户是否点击了“返回”按钮

IT技术 javascript jquery back-button jquery-events
2021-02-20 19:09:22

当用户进入 history-back-1 时......我如何检测?然后,警告“用户点击了回来!”

使用绑定(最好使用 jQuery)

5个回答

您通常不能(浏览器安全限制)。您可以判断用户是否离开页面(onbeforeunload、onunload fire),但除非您将页面设置为允许,否则您无法判断他们去了哪里。

HTML5 引入了 HTML5 History API;在符合标准的浏览器中,如果用户导航回您网站上较早的“页面” ,则onpopstate事件将触发。

您可以以一种可检测到回击的方式构建页面,但您可以知道他们去了哪里的唯一方法是他们是否碰巧导航到您网站上的另一个页面(在那里您控制 JavaScript)。如何构建这样的场景?当用户访问“PageA.htm”时,您立即将它们发送到“PageB.htm”,如果他们再次加载“PageA.htm”,您可以“猜测”他们已经点击了“返回”。
2021-04-15 19:09:22
2021-05-04 19:09:22

尝试:

window.onbeforeunload = function (evt) {
  var message = 'Are you sure you want to leave?';
  if (typeof evt == 'undefined') {
    evt = window.event;
  }
  if (evt) {
    evt.returnValue = message;
  }
  return message;
}
如果用户访问其他站点,OnBeforeUnload 也会触发。
2021-04-24 19:09:22
有没有办法不显示警报消息?
2021-04-28 19:09:22
window.onpopstate=function()
{
  alert("Back/Forward clicked!");
}
如果您访问另一个页面然后返回到此页面,这不会触发
2021-04-23 19:09:22

以下是检测后退按钮点击的步骤

  1. 在身体上注册一个鼠标按下事件 $('body').on('mousedown' ,'on all li' );

    2.现在设置一个当mousedown事件发生时的变量。

    3.当你的位置改变时检查这个变量。

如果变量 chages 为 true,则表示列表已点击,否则返回按钮

这在我的用例中工作。这个解决方案可能会帮助其他人,因为它取决于应用程序设计

在您正在查看的页面上,您可以将这段代码添加到onLoad事件中,以将它们移回原来所在的页面。

if(history.length>0)history.go(+1)

如果你想要警报然后让它

if(history.length>0)alert("the user clicked back!")
对任何事情都不起作用。history.length > 0即使它是一个全新的页面,也会为您提供真实的信息。它为您提供整个历史长度, 包括向后和向前页面。
2021-05-12 19:09:22