我的页面上有一个“后退”按钮。
当前,后退按钮触发window.history.back()
。这意味着如果没有“后退” URL,则该按钮不起作用,我想纠正这种情况。
我想处理两个用例,但不知道如何:
如果没有历史记录,请使用document.referrer
。例如,右键单击并单击“在新选项卡中打开链接”。
如果没有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,但是何时处理该页面是通过“在新标签页中打开”打开的吗?
关于如何检测到浏览器后退按钮已禁用的任何提示?
谢谢。