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 失效