分享页面后添加新的路由栈

假如该页面是别人分享过来的而不是通过其他页面进入的呢?那么点击该按钮将不会有任何反应,因为此时history对象中不存在历史记录,也就是说这是你浏览器窗口打开时浏览的第一个页面,

 

现在希望分享出去后,可以点击返回按钮,返回到指定的页面

history.replaceState(null, null, 'https://home') //替换掉当前页面
history.pushState(null, null, currentUrl)//使用history.pushState添加历史,让用户可以点击返回按钮
     //点击后退按钮(或者在JavaScript中调用history.back()方法)时触发;
     //如果用户点击回退,则会退到 https://home 前进则会到curenturl页面
window.onpopstate = function () {
         setTimeout(function () {
           window.location.reload()//路由栈https://home在分享后,没有加载过,
而有些浏览器在点击返回按钮的时候,是不会触发onload事件,也就并没有刷新,bfcache,在回退的时候需要重新加载一次
         }, 50)
}

 

你可能感兴趣的:(javascript)