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