jQuery Cookie无法保留更新值问题求助
问题诊断与解决方案
问题根源
你代码里的第二个require模块会在每次页面加载时无条件执行,直接把rlx-consent Cookie强制设为false。哪怕用户点击按钮已经把它改成true,刷新页面后这个模块又会重新覆盖Cookie值,导致回到初始状态。
修复代码
修改第二个require模块的逻辑,先检查Cookie是否已存在,只有不存在时才设置默认值:
require(['jquery', 'mage/cookies'], function ($) { // 先判断rlx-consent是否存在,不存在才设置默认值 if (!jQuery.cookie('rlx-consent')) { jQuery.cookie('rlx-consent', 'false', { expires: 365, path: '/', domain: "davidfairclough.com" }); } });
额外优化提示
- 你在第一个
require里手动拆分解析Cookie的逻辑,可以直接用jQuery.cookie('cookie_consent')替代,既简洁又能避免手动处理字符串可能出现的格式错误。 - 确认
domain参数的正确性:如果你的网站是通过子域名(比如www.davidfairclough.com)访问,设置domain: "davidfairclough.com"是没问题的;但如果是直接用顶级域名访问,也要确保浏览器能正确识别这个Cookie的域规则,避免出现Cookie无法跨页面共享的情况。
内容的提问来源于stack exchange,提问作者Corey
相关产品推荐
相关产品推荐

