为什么这个JQuery样式表切换器不存储cookie?

时间:2011-09-27 19:48:52

标签: javascript jquery stylesheet switching

我有一个下载的样式表切换器似乎无法正常工作。

切换器的工作方式与加载新样式表一样多,但是它实际存储和读取的cookie实际上从未发生过(我假设同样多,就像我刷新页面时它恢复到默认样式表一样)

chrome中的控制台返回以下错误:

未捕获的ReferenceError:未定义readCookie

现在我的理论是readCookie变量没有定义,我应该将它移到顶部,但这只是使脚本完全无效。

关于jQuery,我不是一个完整的新手,但这是一个下载的脚本,我之前没有使用javascript cookie的经验。

任何帮助都会非常感激。

(function($)
{
  $(document).ready(function() {
    $('.styleswitch').click(function()
    {
      switchStylestyle(this.getAttribute("rel"));
      return false;
    });
    var c = readCookie('style');
    if (c) switchStylestyle(c);
  });

  function switchStylestyle(styleName)
  {
    $('link[@rel*=style][title]').each(function(i) 
    {
      this.disabled = true;
      if (this.getAttribute('title') == styleName) this.disabled = false;
    });
    createCookie('style', styleName, 365);
  }
})(jQuery);
// cookie functions http://www.quirksmode.org/js/cookies.html
function createCookie(name,value,days)
{
  if (days)
  {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else var expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name)
{
  var nameEQ = name + "=";
  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,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}
function eraseCookie(name)
{
  createCookie(name,"",-1);
}

0 个答案:

没有答案