多页Javascript样式表更换器仅在一个子页面中更改样式表,而不是在所有子页面中

时间:2013-03-09 14:45:35

标签: javascript cookies stylesheet

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

解决此问题的任何提示?谢谢!

1 个答案:

答案 0 :(得分:3)

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