【问题标题】:how to force page refresh on browser back click?如何在浏览器返回点击时强制页面刷新?
【发布时间】:2023-04-01 21:15:02
【问题描述】:

点击导航器后退按钮时,是否有一种跨浏览器兼容的方式来强制刷新页面?

我正在尝试访问已实现的 cookie:

我有一个 js setcookie 函数,可以记录类型选择器中的变化

$( "#type-select" ).change(function() {             
    var type = $("#type-select").val();
    SetCookie("liste-voyage-type",type);
    });

我想在返回此页面时检索该值,单击浏览器后退按钮,使用 php

 if (isset($_COOKIE["liste-voyage-type"]))
        $type=$_COOKIE["liste-voyage-type"];

【问题讨论】:

  • 如果你想刷新页面然后检测浏览器返回按钮点击然后引用页面

标签: javascript jquery cookies browser-cache


【解决方案1】:

我的项目中有类似的要求。你可以这样做:

例如,假设有两个页面:page1 和 page2

Page1 中执行如下操作:

<script>
     if (sessionStorage.getItem("Page2Visited")) {
          sessionStorage.removeItem("Page2Visited");
          window.location.reload(true); // force refresh page1
     }
</script>

page2中:

<script>
     sessionStorage.setItem("Page2Visited", "True");
</script>

现在,每当您从 page2 中单击返回按钮时,它将强制在 page1 上刷新页面。

【讨论】:

    【解决方案2】:

    我对 cookie 的做法略有不同

     function SetCookie (name, value) {
    var argv=SetCookie.arguments;
    var argc=SetCookie.arguments.length;
    var expires=(argc > 2) ? argv[2] : null;
    var path=(argc > 3) ? argv[3] : null;
    var domain=(argc > 4) ? argv[4] : null;
    var secure=(argc > 5) ? argv[5] : false;
    document.cookie=name+"="+escape(value)+
        ((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
        ((path==null) ? "" : ("; path="+path))+
        ((domain==null) ? "" : ("; domain="+domain))+
        ((secure==true) ? "; secure" : "");
     }
    
    
    
    function getCookie(c_name)
    {
        var c_value = document.cookie;
        var c_start = c_value.indexOf(" " + c_name + "=");
        if (c_start == -1)
        {
            c_start = c_value.indexOf(c_name + "=");
        }
        if (c_start == -1)
        {
            c_value = null;
        }
        else
        {
            c_start = c_value.indexOf("=", c_start) + 1;
            var c_end = c_value.indexOf(";", c_start);
            if (c_end == -1)
            {
                c_end = c_value.length;
            }
            c_value = unescape(c_value.substring(c_start,c_end));
        }
        return c_value;
       }   
    
    
    
    
     if (getCookie('first_load'))        
    {
        if (getCookie('first_load')==true)
        {
            window.location.reload(true); // force refresh page-liste
            SetCookie("first_load",false);
        }
    }
    SetCookie("first_load",true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      • 2021-11-27
      相关资源
      最近更新 更多