検索オーバーレイをクロスブラウザ化しようと思って作業してて、よし IE で確認してみるかって思ったら、そもそも IE だと検索フォームがでてないのに気付いた。そうそう、この CSS 書くときにどうしても IE はちゃんとした位置に出せなかったから消してたのよねー、あははー。ばかかと
Category web.
prototype.js に移行
整理ついでに prototype.js を使うようにスクリプトを書き換えました。殆どイチから書き直しているのでおかしいかも。
といっても、引き継いだのはスタイルセレクタと検索の UI だけ。あとはそのうち付け足す。
検索の UI はとりあえず IE でもいけそうなところまできた、の、だ、けれど、結果表示が上手く言ってない。文字コードのせいかなぁ。
Opera は調子が悪いので確認してない。
よくつかうめそっど: each, bind。この二つは便利すぎてはなぢでる。foo.each((function (i) { this.bar.push(i) }).bind(this))
IE 対応完了。検索結果を XML で得るとき UTF-8 に変換していなかった。あとは CSS いぢりだけ。CSS いぢるほうが時間かかった。
解決:はてなからうちのサイトにリクエスト出すと 500
今日たまたまはてな RSS に lowreal.net を突っ込んでみたら 500 Error で登録できないことに気付きました。毎回ちゃんとリクエストしてるのが確認できるので、これ使ってデバッグ。
UA によって変わることというなら、ヘッダぐらいしかないので、ENV ダンプして再現するかやってみたけど再現せず、、っと思いきや ENV.clear してなかったので、clear してから突っ込んでみたら見事 500 発生。Accept が存在すると仮定しているコードがあったので @cgi.accept || "*" に書き換えた。はてなは Accept 送らないみたいだ。
HTTP の仕様を見ると Accept がない場合は "*" として扱うとあるので、どうせなら cgi.rb でここらへんのをやってくれると嬉しいと思った。
たぶんこれでブクマしたときに要約がちゃんと生成されるはず。ついでに投げ銭 Acceptable に ;)