localStorage和sessionStorage配合history.go()

       最近因为之前项目新增了一个简单的技术需求,当页面没有前驱历史记录时(就是当前为新弹出的页面,没法做goback操作即history.go(-1)),点击返回按钮时直接关闭页面,否则就退回到前一页。

       这个问题最重要的就是如何判断 是否有history可以回退,这个非常麻烦,因为没有这样的函数直接能获取到,只能通过history.length这个变量做变通的处理

       因此写了一个简单函数实现前面所需求的这个功能。

/*

*返回前一页(或关闭本页面)

*如果没有前一页历史,则直接关闭当前页面

*/

function goBack(){

    if(window.history.length > 1){

        window.history.go( -1 );

        sessionStorage.removeItem('ifFlag');

    }else{

        window.opener=null; window.close();

    }

}

关于localStorage和sessionStorage在项目中的应用;最近在不同的项目中都遇到了

localStorage主要是用来做促销时的强提示,即用户第一次登陆时,弹出促销信息,或者是用户清除缓存退出后,再次登陆时,会主动提示,其他时候只有点击时才弹出,代码如下:

var flag = 1;

if(!window.localStorage.getItem('ifFlag') || window.localStorage.getItem('ifFlag') != flag){

    window.localStorage.setItem('ifFlag',flag)

    readMore();

}

function readMore(){

    alert('促销')

};

 

sessionStorage大部分情况下,其实是用不到的,最近也是因为维护公司之前的项目,之前的项目不同模块也是不同小组在维护,所以这次的技术CR只能自己想办法解决

需求是,点击复制按钮,页面弹出提示,确定则继续关闭弹框,继续执行;取消则返回前一页,再次点击按钮,重新进去页面会再次出现弹框

这个问题比较麻烦的就是页面中也有其他按钮点击之后会重新加载当前页面,但是不希望出现弹框,所以只能设置sessionStorage,并在返回上一页时清空(全局变量会因为重新加载而刷新,不可用),代码如下:

var payFlag = 1;

if(!window.sessionStorage.getItem('ifFlag') || window.sessionStorage.getItem('ifFlag') != payFlag){

    window.sessionStorage.setItem('ifFlag',payFlag)

    goBack();

}

 

你可能感兴趣的:(css)