【问题标题】:Change back button functionality in browser using jQuery使用 jQuery 更改浏览器中的后退按钮功能
【发布时间】:2023-03-30 18:15:01
【问题描述】:

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

http://website.com/page3.php

我提交了一个表单,它返回了这个地址:

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

然后当我转到另一个页面时,例如

http://website.com/blog.html

然后点击后退按钮,它会回到上面有 $_GET 变量的页面。我希望当我点击浏览器的后退按钮到这里时:

http://website.com/page3.php

是否有可能对于(浏览器的)后退按钮,每当我刚从带有变量的特定页面返回时单击它,它也不会获取变量?

【问题讨论】:

标签: javascript php jquery html ajax


【解决方案1】:

我认为您可以在http://website.com/page3.php 中的表单上设置会话变量。然后在http://website.com/page3.php?ok=ok 提交完成后取消设置。

并且每次加载 url 中带有变量的页面时,立即检查提交会话变量以查看是否从表单页面重定向到页面。如果没有,将您重定向回 page3.page。

我希望我说得够清楚!

【讨论】:

    【解决方案2】:

    这是不可能的,你可以通过使用 pushState 和浏览器历史记录一起破解一些东西

    【讨论】:

      【解决方案3】:

      一种方法是使用 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
          }
      ?>
      

      【讨论】:

        【解决方案4】:

        如果用户点击指向您页面的链接,单击“返回”会再次将其从页面中移除,您无法覆盖该行为。

        【讨论】:

          【解决方案5】:

          您可以使用 window.location.replace() 更改位置,或者在您的 URL 中实现深度链接(如果它是后哈希路由):

          Difference between window.location.href, window.location.replace and window.location.assign

          http://en.wikipedia.org/wiki/Deep_linking

          干杯,

          安德鲁

          【讨论】:

            猜你喜欢
            • 2013-04-29
            • 1970-01-01
            • 2018-10-05
            • 2014-12-22
            • 2015-08-12
            • 1970-01-01
            • 2021-01-02
            • 2021-03-24
            • 1970-01-01
            相关资源
            最近更新 更多