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

标签 javascript cookies stylesheet

我的网站有 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>

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

最佳答案

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

关于javascript - 多页 Javascript 样式表更改器仅更改一个子页面中的样式表,而不是所有子页面中的样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15311957/

相关文章:

css - IE 7 和 8 无法加载(或可能正确级联)样式表的一部分

javascript - 以编程方式展开最不错误的 Accordion

php - Cookie 多个值

node.js - node.js socket.io-client 应该处理 set-cookie

javascript - 向 HTML 网站添加 cookie 同意

css - Bootstrap 导航栏总是为 Drupal 主题折叠

javascript - 允许字母数字和空格的正则表达式。使用 UTF-8

javascript - 动态创建的元素上的 addEventListener 不起作用

javascript - 如何使用 lodash _isEmpty 检查对象是否为空?

css - 背景按钮显示在切换按钮的顶部