js利用localStroage实现一个页面栈

//管理页面栈

let pageStack;

//初始化
$(function () {
    //从 localStorage 初始化页面栈
    try {
        pageStack = localStorage.getItem('pageStack').split(";");
    } catch (e) {
        pageStack = [];
    }

    //获取刷新前或上一页面的Url
    let preUrl = localStorage.getItem('PreUrl') || "";

    if (preUrl != location.href) {
        //首先判断当前页面是否包含 返回按钮
        let btnBackCount = $("#btnBackToPre").length;
        if (btnBackCount > 0) {
            //存在返回按钮,将页面入栈
            pageStack.push(preUrl);
            localStorage.setItem('pageStack', pageStack.join(';'));
        } else {
            //清空页面栈
            localStorage.removeItem('pageStack');
            pageStack = [];
        }
    } 
})

/**
 * 从页面栈返回
 * */
function backFromPageStack() {
    //处理页面栈
    let backUrl = pageStack.pop();
    localStorage.setItem('pageStack', pageStack.join(';'));
    //返回目标页面
    top.window.location.href = backUrl.replace('#', '');
    //阻止继续冒泡
    window.event.returnValue = false;
}

/**
 * 从页面栈返回
 * */
$("#btnBackToPre").click(backFromPageStack);

猜你喜欢

转载自www.cnblogs.com/lkc9/p/10881110.html