JavaScript中,返回上一个页面时,如何保证上一个页面的不刷新?

History 对象包含用户(在浏览器窗口中)访问过的 URL。

浏览器在默认情况下会缓存input输入框的值,autocomplete="on" 默认有这个属性, 只有使用Ctrl+F5强制刷新,或者a标签重新跳转才可以清除缓存记录。

<input type="text" autocomplete="on">

这时候history.go(-1),history.back()表单会从缓存中取值,但js还是会执行的。所以这里的刷新是否大家判断不一致,这是判断标准不一样。

要实现js也不执行效果,可以利用sessionStorage,再下一个页面要返回的时候在sessionStorage中存储一个参数

let box = document.querySelector('.box');
box.onclick=function(){
    sessionStorage.setItem('isTrue',true);
    history.back()
}

在表单页获取sessionStorage存储的参数,用来判断js是否执行。最后再从sessionStorage中移除这个参数就可以了。

if (!sessionStorage.getItem('isTrue')) {
    console.log('js执行了');
}else{
    sessionStorage.removeItem("isTrue"); //从sessionStorage中移除这个参数
}

 

posted @ 2019-09-19 14:05  雪旭  阅读(22164)  评论(2编辑  收藏  举报