Javascript 饼干不是';我不总是工作
我有以下脚本:Javascript 饼干不是';我不总是工作,javascript,jquery,cookies,Javascript,Jquery,Cookies,我有以下脚本: function dsm_setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + "; " + expires; } funct
function dsm_setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
function dsm_getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
}
return "";
}
jQuery(window).ready(function() {
var fontsize = dsm_getCookie('class-fontsize');
jQuery('body').prepend(fontsize); // Debug
if (fontsize == 1) {
jQuery('body').addClass('fontsize');
}
jQuery('.fontsize-small').click(function() {
if (jQuery('body').hasClass('fontsize')) {
jQuery('body').removeClass('fontsize');
}
dsm_setCookie('class-fontsize', 0, 30);
});
jQuery('.fontsize-large').click(function() {
if (!jQuery('body').hasClass('fontsize')) {
jQuery('body').addClass('fontsize');
}
dsm_setCookie('class-fontsize', 1, 30);
});
});
函数dsm\u setCookie(cname、cvalue、exdays){
var d=新日期();
d、 设置时间(d.getTime()+(exdays*24*60*60*1000));
var expires=“expires=“+d.toutString();
document.cookie=cname+“=”+cvalue+”;“+expires;
}
函数dsm_getCookie(cname){
变量名称=cname+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
在这里,我在jsfiddle上做了一个示例,它正在正常工作。
现在,当我将脚本添加到我的wordpress时,它有时有效,有时无效。几天来我一直在试图找出原因,但似乎找不到原因。在使用cookie时,您需要注意以下几点:
- 每个域的Cookie数不得超过50个
- Cookie的最大限制约为每个域4k。i、 e.项目的规模 所有cookie不应超过4k。这意味着你可以吃一块饼干 4k或2k等的2块饼干
这可能会对您有所帮助。我会尝试在
dsm\u setCookie()中的cookie定义中添加一个路径
:
cookie可能默认为当前文档位置的当前路径…该路径可能不是站点的根。备选方案
您可以使用本地存储而不是cookie
,并且非常易于使用
e、 g
在处使用合适的括号,而嗯,我要试试。虽然我刚刚从w3复制了cookie脚本。@不幸的是,UnknownUser似乎不起作用。您可以使用本地存储而不是cookie,这比这要好得多。而且也很容易。e、 g.localStorage.setItem('firstname','kaushik')
和localStorage.getItem('firstname')代码>谢谢,我现在要查看localStorage:)尝试用您的代码片段更改代码。到目前为止运气不好。奇怪的是,有时有效,有时无效。嗯,我认为我还没有达到极限。这不会让它停止工作吗?因为有时候它仍然有效。
document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';
localStorage.setItem('firstname', 'kaushik');
localStorage.getItem('firstname');
// output - kaushik