我可以使用/ Javascript检查浏览器历史记录中是否有下一页?

时间:2011-01-25 20:23:45

标签: javascript iphone web-applications browser-history

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

我希望能够控制这些基于javascript的前进和后退按钮的显示,具体取决于是否实际存在下一页或上一页。例如,如果没有下一页,则下一个按钮可以变灰并且不可点击。如果我无法控制按钮的显示方式,则可以单击它们但不起作用。这可能会导致用户混淆。

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

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

2 个答案:

答案 0 :(得分:0)

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

现在是坏消息:因为你想将它应用到基于WebKit的浏览器,我在Chromium中测试了上面的代码,但{{1}}的类似数组的项目是不在那里。

答案 1 :(得分:0)

什么是巨大的安全问题?!浏览器已经使用引用程序对服务器进行ping操作,众所周知,您不能在地址中包含敏感信息(例如在$ _GET中传递密码),仅针对此问题。

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