使用查询字符串重新定向后循环返回按钮

问题:

我需要从包含第二页url的查询字符串的URL开始 – http://www.firstURL.com/?http://www.secondURL.com 。 在第一个URL的目标页面上,解析查询字符串以提取第二个URL,并将浏览器重定向到第二个URL。 这是在$(document).ready上完成的,因此它是自动的。 这一切都很好,但如果用户点击第二个URL上的后退按钮,当然会陷入漏洞。 这是基本代码:

 $(document).ready(function() { var s = location.search; if(s != '') { var split = s.split('?'); var loc = split[1].replace('?', ''); location.href = '' + loc + ''; } else { //do something else on the target page.. } }); 

我已经尝试创建一个条件情况,如果引用者是第二个URL(上面代码中的loc ),则重定向不执行,但似乎在重定向的情况下,后退按钮不会返回推荐人。

我必须做所有这个客户端 – 我无法访问服务器。

有没有办法防止后退按钮点击时重定向触发? 谢谢。

点击第二页后,在浏览器中设置一个cookie,表示已访问过第二页。 在第一页中,在进行重定向之前,请始终检查cookie是否不存在。

设置cookie的说明:

  

在第一页中,检查cookie存在:

  

编辑:假设你只控制第一页而不是第二页,试试这个:

  

我给了Ashish让我走上正确轨道的重点,但这是我的解决方案更进了一步:

  var s = location.search; if(s != '') { var split = s.split('?'); var loc = split[1].replace('?', ''); if (document.cookie.indexOf('redirected=' + loc + '') == -1) { document.cookie = 'redirected=' + loc + ''; location.href = '' + loc + ''; } else { var url = location.href.replace('' + s + '', ''); document.cookie = 'redirected=; expires=Thu, 01 Jan 1970 00:00:00 GMT'; history.pushState(null, null, '' + url + ''); } 

如果cookie在那里,则不会发生重定向,删除cookie(如果用户返回到具有原始链接并再次单击它的站点),则通过删除查询字符串来整理URL 。

感谢您的指导。