强制浏览器后退按钮重新加载页面

时间:2015-04-21 08:35:09

标签: javascript jquery

我希望能够做到以下几点。

点击$('#nxPage')并按下浏览器后退按钮后,我想强制页面重新加载surl

$('#nxPage').click(function(e){
    surl = "main/products.html?a=324&u=3285"
    if (surl != window.location) {
        window.history.pushState({ path: surl }, '', surl);
    }
});

$(window).on('pushState', function(event) { 
    location.reload(true); 
});

3 个答案:

答案 0 :(得分:0)

您无法更改以前的历史记录条目,只能更改当前的replaceState()条目。或者使用pushState()推送一个新的。如果您希望以前的历史记录条目加载特定的URL,则应该先由Web浏览器当前显示的同一页面实例推送/替换它。

答案 1 :(得分:0)

试试这个:

$('#nxPage').click(function(e){
  e.preventDefault();
  surl = "main/products.html?a=324&u=3285";
  history.pushState({ url: surl }, "", surl);
});

$(window).on("popstate", function(e) {
   change(e.originalEvent.state);
});

function change(state) { 
  if(state === null) { // initial page
    //do nothing
  } else { // page added with pushState
    location.reload(true); 
  }
}

(function(original) { // overwrite history.pushState so that it also calls
                  // the change function when called
   history.pushState = function(state) {
     change(state);
     return original.apply(this, arguments);
   };
})(history.pushState);

答案 2 :(得分:0)

您可以发送会话处理程序以强制重新加载。尽管使用JavaScript是不可能的......