javascript - 我可以使用 JavaScript 检查浏览器历史记录中是否有下一页吗?

标签 javascript iphone web-applications browser-history

这里有一个简单的描述:我正在使用 iWebKit 将网页显示为全屏 iPhone 应用程序。当您这样做时,您获得了空间,但失去了导航按钮。我可以在页面上放置充当前进/后退的按钮并重新获得该功能。这是可取的,因为我可以将其他内容与这些按钮放在同一行(例如“主页”按钮和标题)

我希望能够控制这些由 javascript 驱动的前进和后退按钮的显示,具体取决于是否确实有下一页或上一页可供访问。例如,如果没有下一页,则下一页按钮可以变灰且不可点击。如果我无法控制按钮的显示方式,则它们可以单击但没有任何效果。这可能会导致用户混淆。

总之,我想知道是否有任何可以实际访问的数据可以告诉我历史记录中是否有下一页。并且,就此而言,上一页。根据我的阅读,出于安全原因,history.next 被隐藏。 history.forward()history.go(1) 似乎仅用作实际转换页面的方法,而不是检查这些页面是否存在。 history.length() 告诉您历史记录中有多少页,但据我所知您无法确定您在该队列中的位置。

有没有办法检查浏览器历史记录中是否有下一页/上一页?

最佳答案

奇怪的是,尽管我知道如果可以查看浏览器历史记录将会出现巨大安全问题,但我(轻松)设法列出了 Firefox 4b9 中的当前历史记录:

var i, h = window.history, o = document.getElementById("output");

o.innerHTML = "<b>" + window.location.href + "<\/b><br>";

for (i = 0; i < h.length; i++)
    o.innerHTML += h[i] + "<br>";

通过此列表,您可以检查最后一个和/或第一个项目是否与 window.location.href 相对应(所有属性 history.current 均 protected ) :=S)。如果它与其中之一相对应,则您可能位于列表的开头或结尾(但您也可能位于列表中间某处的同一地址);如果没有,你绝对不在历史的边缘。

现在是坏消息:当你想将其应用到基于 WebKit 的浏览器时,我在 Chromium 中测试了上面的代码,但是 window.history 的类似数组的项目 不在那里。

关于javascript - 我可以使用 JavaScript 检查浏览器历史记录中是否有下一页吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4798421/

相关文章:

javascript - 在 bootstrap nav-pill 中使用 div

javascript - iOS 设备上的 ionic 页面问题

iphone - OpenGL ES 光照问题

nginx - 如何在一个域名下托管多个应用程序?

javascript - 为什么不能在我的 p5 函数中全局引用这些变量?

javascript - Bootstrap 验证器表单问题

javascript - 添加时区后为 "getDate is not a function"

iphone - 为 iPhone 应用程序生成类图

java - 如何使 jmeter 根据访问日志行中存在的时间戳进行日志重播

java - 使用 Java 在 Linux 机器上获取主板序列号/ID 以防止盗版