ウェブサイトのテーマを同じに保ちます。クッキー?
-
06-07-2019 - |
質問
これを行うには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リクエストを送信できます。