页面历史记录 - 后退按钮存在?

Lou*_*s W 14 javascript

是否有可能检查history.go(-1)是否有值?我知道你无法直接访问history.previous.

我试图远离document.referrer,因为我知道它可以在某些情况下被阻止.

这是我想要做的.我有一个错误页面,在这个页面上我想要一个BACK按钮(如果它不是历史上唯一的项目)或关闭按钮(如果是).

And*_*ech 20

if (history.length) {
    //There is history to go back to
    history.go(-1);
}    
Run Code Online (Sandbox Code Playgroud)

  • 这是不正确的,因为`history.length`不仅包括背页,还包括转发页.因此,如果您打开浏览器选项卡,请按照链接,单击"返回",历史记录长度将超过零而您无法再返回. (5认同)
  • 有没有办法检查前进按钮是否存在? (3认同)

Joh*_*ies 12

实际上,history.length总是一个或多个,因为当前页面很重要.此外,如果您有前进历史记录(即您使用后退按钮),那么这些页面也会计算在内.所以你需要一个更复杂的检查:

if( (1 < history.length) && document.referrer ) {
Run Code Online (Sandbox Code Playgroud)

  • 如果单击“ target =“ _ blank”`链接并且无法在新选项卡中进行“后退”,则传递引荐来源,因此此解决方案并不完美。 (2认同)