【问题标题】:Multipage Javascript stylesheet changer changes stylesheet in only one subpage, not in all of them多页 Javascript 样式表更改器仅在一个子页面中更改样式表,而不是在所有子页面中
【发布时间】:2013-03-09 14:45:35
【问题描述】:

我的网站有 5 页。我想允许用户通过单击超链接来更改外观。我还希望将更改后的样式存储在 cookie 中。因此,当我从主页更改样式表时,其余 4 个页面也会更改。问题是当我从第五页更改样式表时,只有第五页上的样式表发生了变化,当我导航到这些页面时,其余的都没有更改。同样,我更改了第四页的样式表,只有这个特定页面的样式表发生了变化。

下面是javascript代码:

var styleNo = parseInt(document.cookie.charAt(6));
var styleFile;
if( isNaN(styleNo) ) // style not selected by user initially, usually not a number at char 6
    styleFile = "/nmc/css/style" + 0 + ".css";
else {
    styleFile = "/nmc/css/style" + styleNo + ".css";
}

document.writeln('<link rel="stylesheet" type="text/css" href="' + styleFile + '">');

function changeStyle( styleNo ){
    var CookieDate = new Date;
    CookieDate.setFullYear(CookieDate.getFullYear( ) +10);
    document.cookie = "style=" + styleNo + "; expires=" + CookieDate.toGMTString() + ";";
    window.location.reload();
}

下面是点击超链接时的编码

<div id="styleSelection">
    <a href="#" onclick="changeStyle(0)">Style 1</a>
    <a href="#" onclick="changeStyle(1)">Style 2</a>
</div>

有解决这个问题的技巧吗?谢谢!

【问题讨论】:

  • 您的 if/else 语句是否用于解析和选择在每次页面加载时执行的样式?
  • 当它不工作时它会返回什么?(使用firebug或chrome开发工具)
  • 这种模式会在所有页面上重复,还是只在第四和第五页重复?
  • @pwdst 对所有页面重复自己

标签: javascript cookies stylesheet


【解决方案1】:

您可能将 cookie 设置在子目录中。如果是这种情况,该 cookie 只会影响该子目录。 this 帖子上的第一个答案解释了这种现象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 2012-10-25
    • 2014-01-12
    • 2010-09-24
    相关资源
    最近更新 更多