如何为jQuery Cookie插件设置365天的默认过期时间?
嘿,我来帮你搞定这个问题!你之前修改config.defaults没效果,主要是找错了配置的正确位置或者方式,下面给你两种可行的解决办法:
方法一:无需修改源码,全局设置默认值(推荐)
不用动插件的源码,只要在你的业务代码里(必须确保在jquery.cookie.js加载完成之后)添加这一行代码:
$.cookie.defaults.expires = 365;
这样之后,所有通过$.cookie()设置的Cookie,默认都会采用365天的过期时间。如果某个Cookie需要特殊的过期时间,你只需要在设置它的时候单独指定expires参数,就能覆盖全局默认值。
方法二:修改插件源码实现默认配置
如果你一定要修改插件源码来实现,别盯着config.defaults = {}那行改,v1.4.1版本的插件里,实际生效的默认配置是挂载在$.cookie.defaults上的。
打开插件源码,找到初始化默认配置的代码段:
var defaults = $.cookie.defaults = {};
把它修改成:
var defaults = $.cookie.defaults = { expires: 365 };
这样插件加载后,所有Cookie的默认过期时间就会自动设为365天了。
为什么你之前的修改无效?
你之前修改的config.defaults并不是插件实际使用的默认配置对象,v1.4.1版本的插件内部是把默认配置绑定到$.cookie.defaults上的,直接修改内部的config对象不会影响全局的默认设置,所以才没生效。
内容的提问来源于stack exchange,提问作者jackennils
相关产品推荐
相关产品推荐

