棚上げじゃないよ。

読書びよりに「棚」機能を実装しました。好きな作品にタグを付けて、自分専用の棚ページに並べられます。ウィッシュリストとか持ち物リストとかがこれで作れるようになった。
この棚への登録パスは3つあって、一つは作品情報のところから一つずつ登録する方法。他の人の棚や発行日一覧、作品ごとの詳細ページそれぞれに登録フォームを開くボタンがあるのでそこから入れられる。もう一つは検索結果から一括投入。
そしてもう一つのが、ウェブカメラを使ったバーコードリーダーでの登録。これはBarcodepedia.comが提供してるFlash版リーダを使った機能で、ブラウザから直接手軽に扱える。本とかがバラバラとある場合、いちいち手で打つより楽に投入できるのでお勧め。シリーズ物なら検索から一括で入れた方が早い面もありますが。


このリーダ、誰でも簡単に使えるんだけどちょっと注意が必要。まず動作は次のような感じ。

  1. バーコードを認識する
  2. flashvarsのbaseUrlの末尾に認識したバーコードの内容をくっつけてジャンプ

この、認識後のジャンプが曲者。Flash Playerの最新版(9,0,115,0)ではデフォルトのセキュリティポリシーが変更されたそうで、Flashから別ドメインへのジャンプが制限されてるみたい。
リーダのswfファイルはen.barcodepedia.comから直接呼び出すことになるんだけど、baseUrlとして自サイトのURLを指定した場合はswfの場所と別のドメインにジャンプすることになるので、蹴られる。結果、認識後次に進まない。
これをなんとかするには、allowScriptAccessをalwaysにしてやればよい。こんな感じで。

修正前
<embed src="http://en.barcodepedia.com/swf/scanner.swf" flashvars="baseUrl=http://www.google.com/search?q=&e1=Flash+8+required.&e2=No+webcam+found.&e3=Access+to+webcam+disallowed+by+user." width="320" height="240">
修正後
<embed src="http://en.barcodepedia.com/swf/scanner.swf" flashvars="baseUrl=http://www.google.com/search?q=&e1=Flash+8+required.&e2=No+webcam+found.&e3=Access+to+webcam+disallowed+by+user." width="320" height="240"  allowScriptAccess="always">

それぞれのflashvarsの解説なんかは次の解説を参照してください。
parentNode.org » Easy to embed, webcam based barcode scanner in flash.