我想把一个链接放在最后一页的按钮中。但通常人们会在我的网站的当前页面和最后一页之间访问其他网站。那么,有没有办法说在我选择的三个页面之间找到的第一个历史记录:a.php、b.php、c.php?
3 回答
不,我很确定你不能那样做。在我看来,任何让你访问浏览器历史的东西都会带来安全风险。
无论如何,如果您想要一个指向他们在您网站上访问的最后一页的链接,那么我建议您在某个地方跟踪它。例如,在每次页面加载时,您可以将页面存储在会话变量中。然后,当他们单击“最后一页”链接时,可以查询此值。
尽管您确实有超时问题,但使用会话变量。如果您需要更长期的东西,您可以考虑使用 cookie,但请注意,有新法律强制您通知任何用户您正在使用 cookie 来存储此类信息。
或者,如果用户是注册用户(并且有登录名),那么您可以将最后一页存储在数据库中。
当然,在页面加载时执行此操作意味着您必须实际跟踪最后两个页面(因为您还将跟踪当前页面)。
同样,另一种选择是您可以将每个页面周围的最后一页 url 作为 url 参数传递 - 很像某些网站在重定向到登录页面时使用的常见“returnurl”
不-所有现代浏览器都不允许这样的事情(同源政策)
您可以做的是建立一个数据库并记录每个用户看到的您网站的最新页面(由 IP 地址确定)。然后查看最后一次看到的页面是一个简单的问题。
您可以history.go()
在 Internet Explorer 中传递一个字符串(URL) 。
请参阅此处的文档:http: //msdn.microsoft.com/en-us/library/ms536443%28v=vs.85%29.aspx
现在,如果你需要一个跨浏览器的替代方案,也许 history.js可以帮助你。
另一个解决方案(更多是 hack)是不允许将页面中的链接保存在会话历史记录中。只有和。a
_ 所以当用户点击“返回”时,它只能导航到这 3 个页面。b
c
你会怎么做?
一种方法是使用replace
方法;
将当前文档替换为提供的 URL 中的文档。[...] 使用 replace() 后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用后退按钮导航到该页面。
文档:https ://developer.mozilla.org/en-US/docs/DOM/window.location#replace