Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 后退按钮-cookies_Javascript_Cookies_Browser History - Fatal编程技术网

Javascript 后退按钮-cookies

Javascript 后退按钮-cookies,javascript,cookies,browser-history,Javascript,Cookies,Browser History,我有一个搜索页面,当我得到结果(100个结果/页面)时,我使用计数器/cookie查看用户点击另一个页面结果的次数。我使用这个计数器作为“返回按钮”返回搜索页面(并记住插入的搜索值) 如果用户转到另一个搜索页面,则该页面与其他结果相同 两个例子: 一, 搜索页面>结果页面(计数器=1) =>后退按钮=窗口。历史记录。转到(-1) 二, 搜索页面>结果页面(计数器=1)>另一个结果页面(计数器=2)>另一个结果页面(计数器=3) =>后退按钮=window.history.go(-3) 这很好,但

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

如果用户转到另一个搜索页面,则该页面与其他结果相同

两个例子:

一,

搜索页面>结果页面(计数器=1)

=>后退按钮=窗口。历史记录。转到(-1)

二,

搜索页面>结果页面(计数器=1)>另一个结果页面(计数器=2)>另一个结果页面(计数器=3)

=>后退按钮=window.history.go(-3)

这很好,但现在我有一个问题。用户可以通过邮件将结果页面发送给另一个用户,如果他单击结果页面并单击后退按钮,我不能使用类似window.history.go(X)的东西

我尝试使用window.location.href(“[searchpage的url]”;,但是,如果用户来自搜索页面或邮件中的链接,我如何签入代码

我可以使用document.referer.indexOf(“[searchpage的url]”)。对于第一个页面,这是可以的,但如果用户转到另一个页面,则不可以。因为我的document.referer.indexOf check总是错误的,因为他从不来自搜索页面

我使用cookies,如果他点击“后退”按钮,我可以更改cookie的值,但是如果用户只是关闭页面并重新打开另一个结果页面,cookies仍然存在,并且它们的值错误


有什么想法吗?

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

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

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

搜索?q=term&p=4

然后您的“返回”链接的href值为:

搜索?q=term&p=3

在那之前的那一页呢

搜索?q=term&p=2

等等

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

搜索?q=新搜索词&p=2


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

我想唯一的方法就是在构建搜索时牢记这一点(即完成此工作的URL)。但是,我不认为任何用户希望在打开电子邮件中的链接后“后退”按钮将他们带回到任何地方。重建搜索是不可能的,我需要调整现有的程序。。。但是我可以在搜索页面上添加cookies,但这对我来说没有帮助,我想?后退按钮上的文本是“返回搜索”,因此用户希望进入搜索页面。但是如果他在一封邮件中打开它,这在目前是行不通的,搜索结果总是会指向同一个地方,不是吗?我的意思是,当人们点击这个的时候,你可以重新设置页面。即使你想显示搜索词,你所要做的就是将它与JS绑定,读取搜索值,并预填充它或其他什么。我不需要返回到例如“搜索?q=term&p=3”,我总是需要返回到搜索页面。。。