1

私のウェブサイトは5ページあります。ユーザーがハイパーリンクをクリックしてルックアンドフィールを変更できるようにしたいと思います。また、変更したスタイルをCookieに保存してほしい。そのため、ホームページからスタイルシートを変更すると、残りの4ページも変更されます。問題は、5ページ目からスタイルシートを変更すると、5ページ目のスタイルシートのみが変更され、残りはそれらのページに移動しても変更されないことです。同様に、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>

この問題を解決するためのヒントはありますか?ありがとう!

4

1 に答える 1

3

サブディレクトリにCookieを設定している可能性があります。この場合、そのCookieはそのサブディレクトリにのみ影響します。この投稿の最初の回答は、この現象を説明しています。

于 2013-03-09T14:51:45.647 に答える