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

发布于 2024-12-07 03:40:11 字数 1585 浏览 0 评论 0原文

我下载了一个样式表切换器,但它似乎无法正常工作。

切换器在加载新样式表时就可以工作,但是它要存储和读取的 cookie 实际上从未发生过(我假设如此,因为当我刷新页面时,它会恢复为默认样式表)。

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

Uncaught 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);
}

I have a downloaded stylesheet switcher that doesn't seem to work properly.

The switcher works in as much as the new stylesheet is loaded, however the cookie that it is meant to store and read never actually occurs (I assume as much, as when I refresh the page it reverts back to the default stylesheet).

The console in chrome returns the following error:

Uncaught ReferenceError: readCookie is not defined

Now my theory was that the readCookie variable wasnt defined and i should move it to the top, but that just rendered the script completely inactive.

I'm not a complete newbie when it comes to jQuery, however this is a downloaded script and I've had no experience with javascript cookies before.

Any help would be HUGELY appreciated.

(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);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文