使用jQuery在浏览器中更改后退按钮功能

时间:2014-02-27 04:13:08

标签: javascript php jquery html ajax

是否可以更改浏览器中后退按钮的地址?例如,我在这个页面中:

http://website.com/page3.php

我提交了一份表格并返回此地址:

http://website.com/page3.php?ok=ok

之后我去另一个页面,例如

http://website.com/blog.html

并单击后退按钮,它返回到包含$ _GET变量的页面。我想要点击浏览器的后退按钮进入此处:

http://website.com/page3.php

每当我从具有变量的特定页面出来时,每次单击它时,是否可以使用后退按钮(浏览器),它也不会得到变量?

5 个答案:

答案 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

干杯,

安德鲁