如何检测到浏览器后退按钮已禁用

时间:2019-04-25 20:07:03

标签: javascript

我的页面上有一个“后退”按钮。

当前,后退按钮触发window.history.back()。这意味着如果没有“后退” URL,则该按钮不起作用,我想纠正这种情况。

我想处理两个用例,但不知道如何:

  1. 如果没有历史记录,请使用document.referrer。例如,右键单击并单击“在新选项卡中打开链接”。

  2. 如果没有document.referrer,请使用默认URL。例如,打开一个新标签并手动输入网址。

这两种情况取决于能否检测到浏览器的后退按钮被禁用,以便页面的后退按钮可以更改其行为。

在有人提到window.history.length之前,我已经看过了,它不起作用。在新标签页和window.history.length = 1中打开一个链接,然后单击任何链接,并在页面加载后单击返回。现在,后退按钮已被禁用,但是window.history.length = 2

我也查看了window.history.state,但这也不起作用。如果您打开新标签页并导航至任意网址,则window.history.state = null,但是如果您在新标签页中打开,则window.history.state = {navigationId:1}。基于状态的单独显示,您不知道状态是否为1,因为启用了后退按钮或因为页面是在新标签页中打开的(例如ctrl + click)。

现在,如果document.referrer为null,那么我们可以假定页面是在新标签页上手动加载的,而不是通过“在新标签页中打开”加载的,因此可以处理上述情况2,但是何时处理该页面是通过“在新标签页中打开”打开的吗?

关于如何检测到浏览器后退按钮已禁用的任何提示?

谢谢。

0 个答案:

没有答案