質問

これを行うにはJavaScriptを使用する必要があると思うので、ここでスタックオーバーフローに置きます。ですから、私のウェブサイトには2つのテーマがありますが、唯一の違いは、1つが無地(背景)で、もう1つが繰り返し画像であるということです。ナビゲーションバーに(javascriptを使用して)変更する2つのリンクがあります。 cssファイルでは無地なので、ページが読み込まれるたびにそのように開始されます。画像テーマのリンクをクリックすると、document.body.backgroundImageが画像に設定され、単色のテーマリンクが押されると、背景画像が「」に設定されるだけです。 (空)、色を再び見ることができるように。したがって、ユーザーが別のページに移動したときや、別の時間に戻ったときに変更しないように、テーマを永続的にするにはどうすればよいですか?ありがとう。

編集:PHPまたはjavascriptを使用できます。

役に立ちましたか?

解決

すべてのjavascriptを使用しており、サーバーサイドコードを使用していない場合、Cookieを設定および読み取るためのJSの例を次に示します。

この関数をJSに追加し、テーマが変更されたときに実行します:

function set_theme(name){
  document.cookie='sel_theme='+name+';';
  }//so, run set_theme('whatevername'); when it is set by the user

Cookieを読み取り、ページの読み込み時にテーマを設定するには(ただし、jQueryまたは同様の$(document).ready()を使用する方がonloadよりも優れていますが、これは単純なjs / domの例です)

 window.onload=function(){
var cookie_pos=document.cookie.indexOf('sel_theme=');//locate value in cookie
if(cookie_pos!=-1){//if string was found
  var cookie_flavor=substr(cookie_pos+10,document.cookie.indexOf(';',cookie_pos));//extract the value of the cookie
  /*then run your already existing change theme function using the extracted name*/
  }    

他のヒント

セッションを使用して、サーバーサイドでのユーザーの設定を追跡できます。ユーザーが戻ってテーマを選択すると(セッション変数から決定できます)、サーバーは無地ではなくbackgroundImageが設定されたHTMLを配信します。ユーザーが設定を切り替えると、セッション変数を更新するajaxリクエストを送信できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top