設定を外部JavaScriptファイルから読み込む

JSONで記述した設定ファイルをどこかのサーバーに置き、それを動的にscript要素を追加するアレで読み込み、適用するという試み。タイトルまんま。設定を保存するということは難しいので、使いどころはとても限られる。Bookmarkletでゴニョゴニョするサイトなんかで細かい指定パラメータの代わりに使うとかが唯一に近い光明。

とりあえず設定ファイルを指定するとデフォルトの設定とマージして適用するサンプルを作った。

  1. 設定ファイル指定無し
  2. 設定ファイル指定有り

二番目のようにクエリでfileパラメータの値に設定ファイルのURLを指定すると、デフォルトの設定

{
  "username" : "anonymous",
  "top" : "0px",
  "left" : "0px",
  "width" : "320px",
  "height" : "240px",
  "color" : "#ffffff",
  "bgcolor" : "#336699"
}

と、設定ファイルで指定した設定

{
  "username" : "Kitty",
  "left" : "80px",
  "width" : "240px",
  "color" : "#ffffff",
  "bgcolor" : "#996633"
}

がマージされて適用される。ここではユーザー名・X方向の位置・幅・背景色を設定ファイルで変更している(マージなので指定されていない設定はデフォルトの設定が適用される)。JSONのマージは、prototype.jsHashオブジェクトのmergeメソッドを利用して行った(考えるのが面倒だったので)。

アサマシHTML作成ツールで似たようなことを既にやっているのだけど、これがテンプレート・ファイルの読み込み限定なのに対して、こちらはWindowsのINIファイルっぽく扱える感じ。セクション作れないけど。

単体で機能するライブラリにして、設定のロードをもっと手軽に扱えるような形にすればそこそこ利用価値のあるものになりそうだけど、所詮は読み込み限定なのでライブラリ化するほどのモノでもない気がする。そもそも使い道思いつかないし。