如何在浏览器历史记录中找到当前位置索引
How to find the current location index in the browser history
浏览器通过window.history
对象提供客户端会话中访问的页面列表。有了它,客户端代码可以在列表中向前和向后导航(使用history.back()
、history.forward()
和history.go()
)。
history.length
仍然是3,反映了总共访问了三个页面的事实。我们如何确定客户当前处于历史记录中的第2项?一个更具体的问题是,我想确定我是否位于历史记录中的第一个项目,这样我就可以显示一个"关闭"按钮,这将关闭页面(假设window.opener
不是null);在历史记录的任何其他位置,我想显示一个"返回"按钮,它将导航到上一页。
历史对象中没有"当前索引",这似乎是一个奇怪的遗漏。
注意:这与问题#12895940类似,但不同之处在于我只需要知道我是否位于历史记录中的第一个位置
我想到的唯一的东西(这只适用于HTML5+浏览器)是沿着这条线:
// Onload
{
if (!history.state && typeof(history.replaceState) == "function")
history.replaceState({ page: history.length, href: location.href }, "foo");
}
当页面第一次加载时,将一个状态对象推入历史堆栈。(需要typeof
检查以确保浏览器支持HTML5 replaceState()
方法。)
之后,我可以检查当前历史对象是否是列表中第一个被替换的对象:
if (history.state && history.state.page == 1) {
// It appears that we are positioned at the first history item
...
}
为了支持HTML5浏览器,你可以在url中添加一个查询参数,例如:mysite.com?i=0
用于第一页,i=1
用于导航到下一页等。
当用户点击后退按钮时,您可以使用window.location.search
检索i的值,并使用相应的关闭/后退按钮修改您的页面。
相关文章:
- 在从索引位置返回的字符串中查找空白
- 需要呈现MongoDB查询返回结果的特定索引/位置
- 有没有办法得到引导3旋转木马的索引位置
- 点击JQuery/HTML5显示元素的索引/位置
- Javascript i(index,iterator):如果用作变量,它将始终被解释为索引位置
- 获取所选元素的位置,而不是 DOM 中元素的索引
- Javascript 返回数组中“匹配”数组的位置索引
- 动态 jquery ui 可排序块的索引/位置
- Windows 8 应用程序中的索引数据库位置
- 子位置绝对位于父绝对 z 索引内
- 在 Firefox 中,当选择具有位置和 z 索引时,为什么更改事件不会在选项卡上触发
- 索引如何返回此示例的位置,结果不应该是 -1
- 如何删除字符串中的索引位置范围
- 工具提示 z 索引位置或其他内容
- jQuery-通过对象在兄弟对象中的位置(索引)来识别对象
- jquery附加到索引位置
- 获取元素在父级中的位置(索引)
- UI.Sortable:接收UI.Dragable时的默认位置/索引
- 如何在浏览器历史记录中找到当前位置索引
- 精灵的位置z索引