Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 饼干不是';我不总是工作_Javascript_Jquery_Cookies - Fatal编程技术网

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