1

我正在创建一个带有后退按钮的页面。如果为第一个后退按钮启动的页面应该隐藏。如果用户通过页面后退按钮导航应该显示。

我用了代码

(window.history.length > 1)?$("#back").show():$("#back").hide();

但我的问题是, window.history.length 不断增加。

但我的要求是当没有页面可以返回时,返回按钮应该再次隐藏。如何做到这一点?

4

1 回答 1

1

你有更多的问题。如果用户来自谷歌怎么办?已经有窗口历史记录了。如果用户访问了您的网站,然后访问了 google,然后又回来了怎么办?

如果它只是@Marc B 描述的导航系统,那很容易,您知道用户来自哪里以及如何返回(不要直接使用历史记录)。但是,如果它是一个后退按钮,无论用户点击哪个链接进入您的网站......它都会变得更加复杂。由于隐私限制,您无法访问用户的实际 URL 历史记录(只是长度),并且如果您使用捕获 window.unload 事件,您将无法访问他们正在导航到的任何 url。所以你的选择有限。

一种选择是将每次页面加载时的窗口位置记录到您保存在本地存储或 cookie 中的数组中。然后你应该使用这个数组来管理你的历史状态而不是依赖于 window.history。当用户单击您的后退按钮时,您只需弹出他们访问过的网站上的最后一个 url 并在那里导航。请记住,第一个页面加载会将一个项目放入您的历史记录数组中,因此根据您检查是否应该显示或隐藏历史记录按钮的位置,您将历史记录数组的长度与 0 或 1 进行比较。

于 2013-01-11T05:19:37.657 回答