localStorge----前端页面跳转传递数据,无需交互

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenbetter1996/article/details/83118346

需求

有时候我们想仅仅在前端页面href跳转到另一个页面,不用后台交互,但是想传一些数据给新页面显示(仅前端实现)。

案例

在这里插入图片描述
在这里插入图片描述
例如这些显示不全的单元格信息,想要点击打开一个新网页详细显示,但是不会再和后台交互那么麻烦。

解决方法 — localStorge

使用localStorge,思想和后台的HttpSession很像
localStorge的API和语法介绍

只读的localStorage 允许你访问一个Document 的远端(origin)对象 Storage;数据存储为跨浏览器会话。 localStorage 类似于sessionStorage。区别在于,数据存储在 localStorage 是无期限的,而当页面会话结束——也就是说当页面被关闭时,数据存储在sessionStorage 会被清除 。

localStorge简单说就是一个页面数据临时存储器,其生命周期只有浏览器页面生存的时间,页面关闭就没了,对整个项目有效。和HttpSession对ip很像

核心代码:

// 新建一对key-value到localStorge
localStorge.setItem("key", "value");

// 从localStorge通过key获取value
var value = localStorge.getItem("key");

这两个语句可以放在不同页面的js中,如新建语句放在原页面,获取语句放在新页面,就可以获取数据了。

案例代码

/**
 * index.js 部分核心代码
 * 保存要传递的数据,点击跳转
 * 页面对应第一张图片
 */
.....
.....
 // 添加点击函数[id, address,time, log,today,yesterday]
        idCell.onclick = function() {
            // 暂存信息到localStorage
            localStorage.setItem('id', this.parentNode.childNodes[0].innerHTML);
            localStorage.setItem('address',this.parentNode.childNodes[1].innerHTML);
            localStorage.setItem('time',this.parentNode.childNodes[2].innerHTML);
            localStorage.setItem('amount',this.parentNode.childNodes[3].innerHTML);
            localStorage.setItem('log',this.parentNode.childNodes[4].innerHTML);
            localStorage.setItem('yesterday',this.parentNode.childNodes[5].innerHTML);
            localStorage.setItem('today',this.parentNode.childNodes[6].innerHTML);
            localStorage.setItem('flag',this.parentNode.childNodes[7].innerHTML);
            // 跳转页面
            window.open("page/detail.html", "_blank");
        }
/** 
 * detail.js
 * 显示详细信息的新页面的js, 对应第二张图片
 */
window.onload = function() {
    // 从localStorge获取数据
    var id = localStorage.getItem('id');
    var address = localStorage.getItem('address');
    var time = localStorage.getItem('time');
    var amount = localStorage.getItem('amount');
    var log = localStorage.getItem('log');
    var yesterday = localStorage.getItem('yesterday');
    var today = localStorage.getItem('today');
    var flag = localStorage.getItem('flag');

    // 显示数据
    $('#id_span').html(id);
    $('#address_span').html(address);
    $('#time_span').html(time);
    $('#amount_span').html(amount);
    $('#flag_span').html(flag);

    //$('#log_span').html(log);
    $('#yesterday_span').html(yesterday);
    $('#today_span').html(today);
}

新窗口打开页面

// 跳转页面 window.open(“url”, “新窗口”);
window.open(“page/detail.html”, “_blank”);

猜你喜欢

转载自blog.csdn.net/chenbetter1996/article/details/83118346