Typecho 通知 Cookies 解析及输出
以下是一段 cookies 数据:
[
{
'domain': 'cc.vip.cc',
'expirationDate': 1679884376.719851,
'hostOnly': true,
'httpOnly': false,
'name': 'd821bd278cf1ec86863eee7d242f4f6a__typecho_notice',
'path': '/',
'sameSite': 'unspecified',
'secure': false,
'session': false,
'storeId': '0',
'value': '%5B%22%5Cu7528%5Cu6237%5Cu540d%5Cu6216%5Cu5bc6%5Cu7801%5Cu65e0%5Cu6548%22%5D',
'id': 1
},
{
'domain': 'cc.vip.cc',
'expirationDate': 1679884376.719888,
'hostOnly': true,
'httpOnly': false,
'name': 'd821bd278cf1ec86863eee7d242f4f6a__typecho_notice_type',
'path': '/',
'sameSite': 'unspecified',
'secure': false,
'session': false,
'storeId': '0',
'value': 'error',
'id': 2
}
]
这段代码从 cookies 中获取了 d821bd278cf1ec86863eee7d242f4f6a__typecho_notice 和 d821bd278cf1ec86863eee7d242f4f6a__typecho_notice_type 两个 cookie 的值,并根据值判断是否需要显示通知。
以下是 JavaScript 代码解析:
function decodeUnicode(str) {
str = str.replace(/\\/g, '%');
return unescape(str);
}
var prefix = 'd821bd278cf1ec86863eee7d242f4f6a',
cookies = {
notice : $.cookie(prefix + '__typecho_notice'),
noticeType : $.cookie(prefix + '__typecho_notice_type')
};
if (!!cookies.notice && 'success|notice|error'.indexOf(cookies.noticeType) >= 0) {
var noticeStr = decodeURIComponent(cookies.notice);
notimsg = decodeUnicode(noticeStr)
notimsg = notimsg.replace(/[[]']g, '');
layer.msg(notimsg, function(){});
console.log(notimsg)
}
代码首先通过 $.cookie() 方法获取了两个 cookies 的值。然后判断 notice cookie 是否存在,以及 noticeType cookie 是否为 success、notice 或 error 中的一种。如果满足条件,则将 notice cookie 值进行解码并显示为通知。
**总结:**这段代码展示了如何从 cookies 中获取通知信息并进行解析和输出。通过分析 cookies 结构和 JavaScript 代码,我们可以了解到 Typecho 网站是如何使用 cookies 来存储和显示通知信息的。
原文地址: https://www.cveoy.top/t/topic/lQ4a 著作权归作者所有。请勿转载和采集!