如何检测用户是否单击了"后退"按钮

TIM*_*MEX 17 javascript jquery back-button jquery-events

当用户进入历史回溯1时...如何检测到?然后,提醒"用户点击回来!"

使用绑定(最好是jquery)

Eri*_*Law 21

你一般不能(浏览器安全限制).您可以判断用户是否导航离开页面(onbeforeunload,onunload fire),但除非您已将页面设置为允许,否则您无法分辨他们去了哪里.

HTML5引入了HTML5 History API; 在符合浏览器的情况下,如果用户导航回您网站上较早的"页面" ,onpopstate事件将会触发.

  • 您可以以可检测到回击的方式构造页面,但是唯一知道它们去向的方法是,如果它们碰巧导航到您网站上的另一个页面(您可以控制JavaScript)。如何构建这样的场景?当用户访问“ PageA.htm”时,您会立即将其发送到“ PageB.htm”,如果他们再次加载“ PageA.htm”,则可以“猜测”他们点击了“返回”。 (3认同)

Adn*_*nan 8

尝试:

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;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果用户访问其他网站,OnBeforeUnload也会触发. (2认同)

Moh*_*eri 6

window.onpopstate=function()
{
  alert("Back/Forward clicked!");
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您访问 **another** 页面然后返回此页面,这不会触发。 (7认同)