はてなの画像は俺のもの。俺の画像は俺のもの。

先日IRCOyaji-pun guyの人と話してて、f.hatena.ne.jp の画像が見れないときに少し不満があるという話をしてた。
ざっと上げると

  • いろんな理由で f.hatena.ne.jp 以下の画像が取得できないことがある。
  • その場合にブックマークレットを使ってrescue901.appspot.com/http://f.hatena.ne.jp/xxxxxx/xxx.jpg のように置換することで表示できるようにしたい
  • HTMLのレンダリング後に<img src>で指定された画像が表示できているかを調べる標準的な方法がない
  • とりあえず、naturalHeight / naturalWidth あたりを使ってお茶を濁した

こんな感じ。mattn は Chrome User だからこれで良くなるのかもしれないけど、さすがにIEでも対応したいよね...って事で3分程度で調べてみた。
IEは独自実装が多いので、だいぶ楽に判別できそう。

ChromeSafariFirefox
画像が正常に取得できないときは img.naturalWidth、img.naturalHeight が 0 になる
IE
画像が正常に取得できないときは img.fileCreatedDate、img.fileModifiedDate、img.fileUpdatedDate、img.mimeType が空に、img.fileSize が -1 に、img.complete が false になる
Opera
画像が正常に表示された場合もそうでない場合も、有意な違いは見当たらず。

こんな感じ。実行するときにはジャイアンのテーマを脳内再生しながら実行して下さい。
(参考文献: Big Sky :: のび太の物は俺の物。俺の物は俺の物。)