iKnowマイウィジェットをはてなダイアリーのサイドバーに貼る
はてなダイアリーのサイドバーに貼り付けられない、と言われてる方がみえたので確認してみたところ、どうやら以前とはJavaScript版の記述が変更になり,Validatorを通らなくなったようです。
アドホックな対応ではありますが、手修正でValidatorを通るようにする修正を書いておきます。
現在、iKnowから取得できるJavaScript版iKnowバッヂのコードはこんな感じ。(実際は1行に繋がってます)
<script type="text/javascript" src="http://www.iknow.co.jp/javascripts/swfobject.js"></script> <div id="embed_iknow_badge"></div> <script type="text/javascript"> var so = new SWFObject('http://www.iknow.co.jp/widgets/iknow_public_badge.swf', 'iknow_badge', '150', '40', '7', '#FFF'); so.addVariable('lang', 'ja'); so.addVariable('username', '********'); so.addVariable('color_bg', 'black'); so.write("embed_iknow_badge"); </script>
でもって、自分が使ってる古い記述はこう。
<script type="text/javascript" src="http://www.iknow.co.jp/javascripts/swfobject.js"></script> <div id="embed_iknow_public_badge"></div> <script type="text/javascript"> var so = new SWFObject('http://www.iknow.co.jp/widgets/iknow_public_badge.swf', 'iknow_public_badge', '150', '40', '7', '#FFF'); so.addVariable('lang', 'ja'); so.addVariable('username', '********'); so.addVariable('color_bg', 'black'); so.write("embed_iknow_public_badge"); </script>
両者を比べてもらえば判りますが、まず、最初に登場するdiv要素のidが、embed_iknow_public_badge から embed_iknow_badge へ(2行目)。
次に、new SWFObject()の2つめの引数が、 iknow_public_badge から iknow_badge へ(5行目)。
あと1つ、一番最後の so.write() の引数が embed_iknow_public_badge から embed_iknow_badge へ変わっています(9行目)。
Dictationバッヂや、BrainSpeedバッヂにも同様の変更が加わっていました。
ですので、現時点で(Googleガジェットなどの手を借りずに)iKnowマイウィジェットをはてなダイアリーのサイドバーに貼り付ける手順は以下の通り。
(※はバッヂの種類によって、iknow、dictation、brainspeedのいずれかになります)
- iKnowのマイウィジェットページで、JavaScript対応版のコードを取得する
- 最初のほうに登場する「div id="embed_※_badge"」を「div id="embed_※_public_badge"」に変更する
- 中ほどに登場する new SWFObject() の2つ目の引数を「'※_badge'」から「'※_public_badge'」に変更する
- 最後のほうに登場する「so.write("embed_※_badge")」を「so.write("embed_※_public_badge")」に変更する
- はてなダイアリーのデザイン設定で、サイドバーの表示させたい場所に貼り付ける
念のため、この方法でマイウィジェットを登録しなおしてみましたが、とりあえずはちゃんと表示されてるっぽい。
ホントはValidator側が対応してくれるのが一番なんですけどネー。
古い記述を有効にするにしても、swfファイルのURL以外に出てくる _public_badge を、 (_public)?_badge にしてやるくらいで対応できそうな気もするけどどうなんかな?