通过history.pushState()更改URL后,如何使用原始URL刷新页面

时间:2019-04-30 09:25:54

标签: javascript php

我使用过history.pushState(),现在如果用户刷新页面,那么它将刷新当前URL,而不是原始URL。

我尝试检测带有cookie的刷新页面,该页面已隐藏,但无法正常工作。

window.onload = function() {
document.cookie="PR=0";     

var read_cookies = document.cookie;


var s = read_cookies;
s = s.substring(0, s.indexOf(';'));

  if( s.includes("1"))
{
    window.location.href = "https://www.google.com";


}
else{

    document.cookie="PR=1";     
}

  loadURL();

};


function loadURL()
  {
  document.cookie="PR=1";       

  document.getElementById("visited").value="1";


  var str="abc/b cd";
  str=str.replace(/ /g, "-");
  history.pushState({},"",str);
  }

当用户刷新页面时,我需要原始URL。

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助。但是您需要控制推送的网址。

// this goes to your 'original' url
window.addEventListener('beforeunload', function (event) {
    sessionStorage.setItem('lastPage', window.location.href)
}

// page with your pushed url
if (sessionStorage.getItem('lastPage') === 'PAGE_YOU_DONT_WANT_TO_BE_REACHABLE_DIRECTLY') {
    window.location = 'PAGE_YOU_WANT'
}

我对这的用例感兴趣。据我所知,您无法完全抑制刷新事件。