我正在考虑向用户发送两个(或许更多)页面。到目前为止有效的是
<strong>
<a href="javascript:history.go(-3)">
Click here to go back to the view
</a>
</strong>
但是,调用的[history]页面不会刷新以显示更改。
所以我有参考推荐人的想法。 PHP让我$_SERVER['REFERER']
使用,这是可以的,但最多只能达到一个级别。如何获得$_SERVER['REFERER']
的推荐人(推荐人......)?
答案 0 :(得分:1)
据我所知,你不能用PHP做到这一点。简单的答案是否定的,因为PHP是服务器端,只获取当前的引用者,而Javascript是客户端大小,在浏览器上运行,实际上有2个或更多历史步骤。
考虑重新思考为什么要这样做。您永远不能保证两步后退推荐人(即使是最后一个)仍然在您的网站中。
答案 1 :(得分:0)
在服务器变量$_SERVER['REFERER']
中,只是最后一个引用者。如果您想使用之前的版本,则必须将它们保存到会话中。问题是您无法找到初始化请求的浏览器选项卡 - 因此您的历史记录将适用于所有选项卡。
解决方案是使用JS强制浏览器重新加载页面。
答案 2 :(得分:0)
纯 JS
。否 PHP
。
像这样修改现有代码。
<strong>
<a href="javascript:window.name='autoLoad';history.go(-3)">
Click here to go back to the view
</a>
</code>
现在将此JS添加到您要重定向的页面。点击 test.html
history.go(-3)
function autoLoad(){
if (window.name=='autoLoad') {
location.reload();
window.name='';
}
}
并在body标签中添加此
<body onload="autoLoad()">
答案 3 :(得分:0)
你可以做这样的事情,或者如果你更喜欢它们就使用cookies,但你不需要PHP。
<input type="hidden" id="reload" value="0">
<script type="text/javascript">
window.onload = function(){
var el = document.getElementById("reload");
if(el.value != "0")
{
window.location.reload();
}
el.value="1";
}
</script>