4

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

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

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

有什么方法可以检查浏览器历史记录中是否有下一页/上一页?

4

2 回答 2

1

奇怪的是,虽然我知道如果可以查看浏览器历史记录将会存在巨大的安全问题,但我(很容易)设法列出了 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受保护:=S)相对应。如果它与其中一个对应,则您可能位于列表的开头或结尾(但您也可能位于列表中间某处的同一地址);如果没有,你绝对不在历史的边缘。

现在有个坏消息:当你想把它应用到基于 WebKit 的浏览器上时,我在 Chromium 中测试了上面的代码,但window.history没有类似数组的项。

于 2011-01-25T21:02:12.107 回答
0

什么巨大的安全问题?!浏览器已经用您的推荐人 ping 服务器,这是一个众所周知的事实,您永远不能在地址中包含敏感信息(例如在 $_GET 中传递密码),仅针对这个问题。

我知道您可以访问上一页,我知道这是事实。

于 2014-02-12T11:20:57.510 回答