sessionStorage 问题

Posted 波子汽水yeah

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sessionStorage 问题相关的知识,希望对你有一定的参考价值。

问题描述
列表页点击进详情页的时候数据没加载到

查看前端代码 在跳转的时候取的列表页数据存到sessionStorage里面

function getCollarDetails(index) 
    var rows = $('#coupon_list_table').bootstrapTable('getData');
    var row = rows[index];
    var strData = JSON.stringify(row);
    sessionStorage.setItem("couponData", strData);


  <a class="inline collar-details" onclick="getCollarDetails(' + index + ');" target="_blank" href="/mymarket/coupon_manage/coupon_details?index=1" style="margin-left: 0;">领用明细</a>

详情页从sessionStorage里面没有取到数据

	    var strData1 = sessionStorage.getItem("couponData");
	    var data1 = JSON.parse(strData1);
	    var sendCouponChannel = data1.sendCouponChannel;
	    var memberRuleId = data1.couponMemberRule.memberRuleId;

报错

coupon_details.js:349 Uncaught TypeError: Cannot read property 'sendCouponChannel' of undefined
    at Object.success (coupon_details.js:349)
    at fire (jquery.min.js:3048)
    at Object.fireWith [as resolveWith] (jquery.min.js:3160)
    at done (jquery.min.js:8235)
    at XMLHttpRequest.callback (jquery.min.js:8778)
 

火狐报错

Uncaught TypeError: JSON.parse(...) is null
    <anonymous> https://ocrm-test.topsports.com.cn/mymarket/js/zh_cn/coupon/coupon_details.js?v=7035b5c146:1
    jQuery 11

手动加上sessionStorage里面数据后就可以正常显示了。

通过带target="_blank"的A标签、window.open等方式打开新窗口时,会把旧窗口(或标签)的sessionStorage数据带过去

看起来似乎没有带过去 有没有前端大佬指教一下

请教了前端大佬,说sessionStorage不会带过去。有可能是在打开的时候还没有设置值。之前也是这样考虑的。换了打开方式 window.open 解决了这个问题

/*跳转到领用明细*/
function getCollarDetails(index) 
    var rows = $('#coupon_list_table').bootstrapTable('getData');
    var row = rows[index];
    var strData = JSON.stringify(row);
    console.log("设置到sessionStorage",strData)
    // localStorage.setItem("couponData", strData);
    sessionStorage.setItem("couponData", strData);
    // window.location.href='/mymarket/coupon_manage/coupon_details?index=0';
    window.open('/mymarket/coupon_manage/coupon_details?index=0', '_blank');


以上是关于sessionStorage 问题的主要内容,如果未能解决你的问题,请参考以下文章

chroem 89 + 打开新标签 sessionStorage 失效

Window.sessionStorage 会话存储

多tab的sessionStorage数据共享问题

H5本地存储sessionStorage和localStorage的区别

localStorage和sessionStorage区别

localStorage 与 sessionStorage