是否可以更改浏览器中后退按钮的地址?例如,我在这个页面中:
我提交了一份表格并返回此地址:
http://website.com/page3.php?ok=ok
之后我去另一个页面,例如
并单击后退按钮,它返回到包含$ _GET变量的页面。我想要点击浏览器的后退按钮进入此处:
每当我从具有变量的特定页面出来时,每次单击它时,是否可以使用后退按钮(浏览器),它也不会得到变量?
答案 0 :(得分:2)
我认为您可以在http://website.com/page3.php上的表单上设置会话变量。然后在http://website.com/page3.php?ok=ok完成提交后取消设置。
并且每次加载包含url中变量的页面时,立即检查提交会话变量,以查看是否从表单页面重定向到页面。如果没有,请将您重定向回page3.page。
我希望自己足够清楚!
答案 1 :(得分:1)
这是不可能的,你可以通过使用pushState并使用浏览器历史记录
来一起破解答案 2 :(得分:1)
一种方法是使用AJAX执行表单发布请求。
另一种方法是在表单中添加令牌,并检查服务器端是否使用header()进行重定向(如果它们不存在)。 例如:
<?php
session_start();
if(isset($_GET['ok'])){
if(isset($_SESSION['form_page3_token'])){
$_SESSION['form_page3_token'] = null;
//first request : do your stuff
}else{
//repost (F5 or Back in the browser => redirect to origin form)
header('Location: http://www.website.com/page3.php');
}
}else{
$_SESSION['form_page3_token'] = session_id();
//here the code to show the form
}
?>
答案 3 :(得分:0)
如果用户关注指向您网页的链接,则无法覆盖以下行为,单击“上一步”将再次将其关闭。
答案 4 :(得分:0)
您可以使用window.location.replace()更改位置,或者在您的网址中实现深层链接(如果它是后哈希路线):
Difference between window.location.href, window.location.replace and window.location.assign
http://en.wikipedia.org/wiki/Deep_linking
干杯,
安德鲁