2011-01-10 8 views
2

私はjQueryカラーピッカーを持っているアプリケーションを持っています。ユーザーが選択した色の値を取得し、それをセッション変数に入れます。今度は、選択された色に基づいて外部スタイルシートの内容を変更します。javascriptから外部スタイルシートを変更する

例:外部「のstyle.css」で

私は、ユーザーがカラーピッカーを選択した後、バックグラウンドの値が「することができます書かれ

+2

なぜこれをやりたいですか? 1人のユーザーごとに1つのスタイルシートがない限り、この値を上書きすると、すべてのユーザーに同じものが表示されます。 –

+0

これは、クライアント側のJavaScriptがすでに動作していると述べたので、主にサーバー側の言語に依存します。しかし、実際にはCSSとは関係ありません。 –

答えて

4

の上にあるべき今.topbox{ background: #dedede; }

のように持っています外部CSSを永続的に変更することはできますが、jQueryを使用してページ上のエレメントのCSSを簡単に変更できます。

var colour = "#cecece"; // returned from colour picker 
$("#element").css("background-color",colour); 


編集:ああ、私の悪いです。あなたがそれをサーバー側でやっているのを気づかなかった。ファイル自体を修正しようとは勧めません。代わりに、暫定的なもの(データベースに格納された値または構造がよく、更新可能なXMLファイル)を使用し、これらの値に基づいてCSSファイルを再作成することをお勧めします。

サーバーへのAJAX呼び出しを実行してカラーピッカーを変更すると、値を自動保存できます。もちろん

$.ajax({ 
    url:'/update/', 
    data: {'name' : 'background-color', 'value' : colourFromPicker }, 
    success: function(data){ console.log(data); } 
}); 

- すべてのサーバー側のコードに依存するが、それは何ができるかの例を与えるん:どんなイベントで、この線に沿って何かがあなたのカラーピッカーによって呼び出されます。

1

単一のユーザー(テーマなど)に永続的な変更を適用する場合は、各ユーザーのデータベースエントリを作成し、選択内容の詳細をデータベースに保存する方がよいでしょう。このようにして、コアファイルを書き換えることなくパーソナライズされた体験を生成するために使用できるユーザーごとのテーマを作成できます。