2016-05-21 9 views
0

私はかなり簡単な質問であることを望んでいます。まず、jQueryとjscookieを使っていると言います。閲覧可能なページの前にCSSのテーマを読み込む

私は、2つの異なるCSSファイル、明るいテーマと暗いテーマを持っています。

<link id="theme" rel="stylesheet" href="css/dark.css" /> 

これは、デフォルトで暗いテーマをロードします。最初は<head>に私はこの<link>タグを持っています。

私は、ユーザーがボタンを使ってテーマを切り替えることができる状況があります。ボタンを押すとテーマ設定を示すクッキーも更新されます。暗いテーマがデフォルトであるため、ユーザーが好みの「明るい」テーマを持っているかどうかを確認するだけです。私はリンクの下に、頭の中で実行されるいくつかのjavascriptを持っている:

if(theme_preference == 'light') { // theme_preference is the value of the cookie 
    jQuery('#theme').attr('href', 'css/light.css'); 
} 
時間このコードは動作し、ページの内容のいずれかがロードされる前にテーマが変更されたが、他の50%のの

50% jQueryが実行される前にページが読み込まれる時間(私が仮定しますか?)、ユーザーは暗いテーマから軽いテーマまでページを視覚的に見ます。他の

何イベント/事私はこのコードが実行されることを確認する活用する必要があると前のhref <link>は、ユーザが画面のいずれかを見て更新しますか?

私は正しい方向に私を指すことができる誰にも大変感謝しています!

+1

完全なコードではどのようなプログラミング言語を使用しますか?また、PHPを使用してHTMLページを生成する場合、クッキーを読むことでテーマに関する決定を下すことができます。残りの部分については、あなたが現在得ていることをどのように防ぐことができないのか分かりません。 – selten98

+0

私はPHPを使用しています。 PHPからjscookieによって設定されたクッキーをどのように読み取るのですか? – Ollie

+1

http://www.w3schools.com/php/php_cookies.aspそこには、クッキーを読む方法、クッキーはブラウザ固有のもの、言語特有でない方法が記載されています。あなたはそれらを読むことができます。あなたのページが読み込まれたら(それはPHPファイルです)、PHPファイルを取得してクッキーの内容を読み取り、それに応じてHTMLを生成するように設定することができます。 – selten98

答えて

1

(コメントで説明したように)PHPを使用することも考慮してください。 PHPにCookieを読み込ませ、その変数を使用させることができます。 PHPはWebサイトがブラウザによってロードされる前に処理されるため、正しい設定が行われます。クッキーはブラウザ固有のものであり、プログラミング言語特有のものではありません。 PHPでこれを行う方法は次のとおりです。http://www.w3schools.com/php/php_cookies.asp

関連する問題