后退按钮-饼干

back button - cookies

本文关键字:饼干 按钮      更新时间:2023-09-26

我有一个搜索页面,当我得到结果(100个结果/页面)时,我使用计数器/cookie来查看用户点击另一个页面结果的次数。我将此计数器用于"返回按钮"以返回搜索页面(并记住插入的搜索值)。

如果用户转到另一个搜索页面,它是与其他结果相同的结果页面。

两个例子:

1。

searchpage>结果页(counter = 1)

=>返回按钮= window.history.go(-1);

2。

searchpage>结果页(counter = 1)>另一个结果页(counter = 2)>另一个结果页(counter = 3)

=>返回按钮= window.history.go(-3);

这是正常工作,但现在我有一个问题。用户可以通过邮件将结果页发送给另一个用户,如果他单击结果页并单击后退按钮,我就不能使用window.history.go(X);

我尝试了window.location。href("[搜索页的url]");但是,如果用户来自搜索页还是来自邮件中的链接,我如何检查我的代码?

我可以使用document.referrer。indexOf("[搜索页面的url]")。这对于第一个页面是可以的,但如果用户转到另一个页面(result)就不行。因为我的document. referer . indexof检查总是假的,因为他从来没有来自搜索页面。

我使用cookie,如果他点击"返回"按钮,我可以改变cookie的值,但如果用户只是关闭页面并重新打开另一个结果页面,cookie仍然存在,它们有一个错误的值…

任何想法?

cookie在会话之间不共享。当用户在新的浏览器中打开一个网站(例如,通过点击电子邮件中的链接),该用户将使用新的cookie开始一个新的会话。

cookie将在同一浏览器中被记住一段时间,即使用户关闭选项卡/窗口并稍后返回。

因此,通常使用url来记住搜索结果中的当前分页,例如:

搜索? q = term& p = 4

那么你的"Go back"链接的href值将为:

搜索? q = term& p = 3

前一页

搜索? q = term& p = 2

等。

和切换到相同的页面,但不同的搜索词:

搜索? q = new-search-term& p = 2

这是普遍适用的,并已成为一种设计惯例。不要重新发明轮子!在我看来,您应该修改现有的程序以采用这种方法。