// Cookie工具类 const CookieUtils = { /** * 设置Cookie * @param {string} name Cookie名称 * @param {string} value Cookie值 * @param {number} days 过期天数,默认7天 */ set(name, value, days = 7) { const expires = new Date(); expires.setTime(expires.getTime() + days * 24 * 60 * 60 * 1000); document.cookie = `${name}=${encodeURIComponent(value)};expires=${expires.toUTCString()};path=/`; }, /** * 获取Cookie * @param {string} name Cookie名称 * @returns {string|null} Cookie值,不存在返回null */ get(name) { const nameEQ = name + "="; const ca = document.cookie.split(';'); for (let i = 0; i < ca.length; i++) { let c = ca[i]; while (c.charAt(0) === ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) === 0) { return decodeURIComponent(c.substring(nameEQ.length, c.length)); } } return null; }, /** * 删除Cookie * @param {string} name Cookie名称 */ remove(name) { document.cookie = `${name}=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/;`; }, /** * 获取JSON格式的Cookie * @param {string} name Cookie名称 * @returns {any|null} 解析后的JSON对象,不存在或解析失败返回null */ getJSON(name) { const value = this.get(name); if (!value) return null; try { return JSON.parse(value); } catch (e) { console.error(`Failed to parse cookie ${name}:`, e); return null; } }, /** * 设置JSON格式的Cookie * @param {string} name Cookie名称 * @param {any} value 要存储的对象 * @param {number} days 过期天数,默认7天 */ setJSON(name, value, days = 7) { try { this.set(name, JSON.stringify(value), days); } catch (e) { console.error(`Failed to stringify cookie ${name}:`, e); } } };