たまに、Web上にグラフ出すのにOpenFlashChartを使う事がある。 世の中のグラフ描画するライブラリて、だいたいモダンなブラウザじゃないと動かないので・・・。 古めのブラウザ使ってるところ(まぁIE8とか)だと、Flashで書いてくれるコレが何かと手っ取り早い。
グラフにしたいデータをJsonで返すWebAPIを作って使うのが楽でいいんだけど、パラメータのところではまったのでメモ。
OpenFlashChartのデータファイル指定で、WebAPIのURLを↓の感じで指定する。
swfobject.embedSWF( "open-flash-chart.swf", "my_chart", "600", "250", "9.0.0", "expressInstall.swf", { "data-file": "/api/somedata/100?hoge=10&year=2013" } );
↑のURL指定だと何故かクエリ文字列の&以降が無視されたURLでリクエストされる。理由はナゾ。いろいろ試して、&をURLエンコードした「%26」を代わりに使うと上手くいく模様。↓上手く行く書き方。
swfobject.embedSWF( "open-flash-chart.swf", "my_chart", "600", "250", "9.0.0", "expressInstall.swf", { "data-file": "/api/somedata/100?hoge=10%26year=2013" } );ハマった。