ツイッター、ブログパーツとIE

 フラッシュで出来たツイッター表示が非常に重いので、JavaScript のものに変えました。表示が早くなってよかったなと思ったんですが。
 常用の FireFox 以外でも試さないといけないわけで、やってみたら Chrome は問題なしでしたが Internet Explorer がダメです。その段階で思い出しました。前にも(ブログ初めてすぐくらい、9月初旬だったかな) JavaScript のツイッター表示パーツをつけてエラーでやめたんでした。
 前のは単に表示されたりされなかったりの「ダイアログエラーメッセージなし」だったです。今回のエラーは「Internet Explorer ではこのページは表示できません」という、はっきりとエラー表示があり、OKをクリックするとエラー表示ページになってサイトが見えないやつ。でもなぜか再読込すると問題なかったり、また同じエラーだったり不安定です。検索してみたら、同じ症状の人がたくさん。もう数年来あるエラーなんですね。IE6 ~ IE8 まですべて同じようです。

 書けばこれだけのことですが原因に行き着くまで二時間くらい右往左往してしまいました。毎回必ず発生する再現性があるエラーなら、わかりやすいんですけどね。数回に一回はうまく通っちゃうので、ツイッターパーツが原因と断定したくなくて、他のことを疑って手直しを繰り返しちゃったから。久しぶりにソースとにらめっこで楽しかった気がしないでもない。

 Internet Explorer8を7に戻して試したりもしました。Internet Explorerの設定の見直しもなんどもしました。キャッシュの削除はもちろん、クッキーも渋々消したり、インターネットオプションの詳細にある「リセット」もしたり。これ、したくないんですよね、ほんとは。いろいろと全部リセットされちゃうから。

 結論としては、「IE が認めてくれない JavaScript がある」ということです。JS 全てがだめなわけではなく、なにか使ってはいけない構文があるらしい。それが何かまでは調べ切れませんでした。最初は外部サイトにあるスクリプトを読み込んでるからセキュリティ対策でダメなんだろうとあたりをつけてそこらをいじったり、スクリプトをダウンロードしてきて自分のところにおき、それを起動してみたりしたんですけど、検討違いだった。

 結局、対処としては最近覚えた「IEだけ反応するタグ」を使い、IEとそれ以外で見せるツイッターパーツを換えるという、逃げ的なことで終わらせました。見るときに使うブラウザで違う内容にするってのは避けたいところなんですが、しかたない。

 その後 「続きを読む」の仕様を変えました に書いたように原因は別のところにあったようで、普通に公式のツイッターパーツを使うようにしました。

 なお、マイクロソフトサポート オンライン に一見そのものずばりの解説があったんですけど、

方法 1 : 他の Web ページを表示できるかどうかを確認する
(ここにMSのアドレス三つ記載)
上に記載されているアドレスのいずれかをアドレス バーに入力した後、同様のエラーメッセージが表示されない場合は、問題が発生した Web サイトの所有者に問い合わせてください。サイトが一時的にオフラインになっているか、その他の問題が発生している可能性があります。

 ということで、Internet Explorerは悪くないぞ! そのサイトの内容が悪いんだぞ! と強調してるだけの説明でした。他のブラウザで問題ないんだからIEが悪いと思うんだけどな~