もう何が何だか


スマートなプログラムが打てないので力技。
もう自分でも何が何だか…

追記:
PerlだけどJavaScriptでPerl的に書けなかったのでこういう物量作戦に。でもこうして少し時間を置いてみると、出力はHTML+CSS+JavaScriptでもPerlなんだから配列組んでやればもうちょいスマートに書けそうなことに気がついた。でもエラーもなしに動いているところに変更は加えたくないなぁ…

何をしようとしているのかこれだけ見て判った人。アンタはエライ。

ぷろぐらま☆もーど

 最近は絵も描かずにプログラムばかり打っている。というか右手の親指の痛いのが治らないんですが。昔さんざん整形外科やら接骨院やら通って何も改善されず、最終的には椎間板ヘルニアでさえ自然治癒で治した経験があるので病院は行かないけど。しかし傷とかも治りが遅くなったなぁ…

 そんな病気自慢はともかく、JavaScriptを動かしていたら古いブラウザでの動作を確認がしたくなった。いろいろぐぐっていたら便利なものを発見。古いバージョンのInternet Explorerの動作をエミュレーションする Multiple IE というフリーウェア。IE3、IE4.01、IE5、IE5.5、IE6をサポートしていて、それぞれ単独に動かすことができる。

 IEというのはかつてMicrosoftが訴訟された原因となったほど、システムに深く食い込んでいる。そのためバージョンアップはできてもバージョンダウンができなかったり、複数バージョンのIEを同居させることができなかった。私がかつてWebデザイナーとして活動していた頃はブラウザの不具合など当たり前にあった時代だから、あらゆるブラウザでの動作確認が必須で、10種類以上のブラウザをWindowsとMacに入れてひたすらオーサリングしていた。それでも顧客から「動かない」などと電話がかかってきて胃がキリキリしたものだ。

 今ではブラウザによって変な挙動をしたり、大きくレイアウトが崩れたりすることがほとんどなくなった。それでもモバイル機器に搭載されたOperaMiniとか、果てはPSPとかでサイトを見てやがる人がいるもんだから、機能の限定されたそういうブラウザを再現するのに古いブラウザが都合がいい。

 今回はIE5以降からサポートしているJavaScriptの関数「getElementById」が動作しないときに「この環境では使えません」と表示させようと思って組んだのだが、ちゃんと動作するかわからなかった。Multiple IEのIE4.01で動作確認したところ、やはりちゃんと動かなくてエラーが出た。修正して以下のような記述で「getElementById」が動作しないときに「使えません」表示が出るようになった(下記は一部抜粋でこれ単独じゃ動かない、動くのはこちら)。

<script type="text/JavaScript" language="JavaScript">
<!--
function clearHTML() {
  if (document.getElementById) {
    document.getElementById("outText").innerHTML = "ここに表示されます";
  }
}
if (!document.getElementById) {
  document.write("<br><span style=\"color:#ff0000\"この環境では使えません<\/span>");
}
//-->
</script>
<noscript><span style="color:#ff0000"><br>JavaScriptを有効にしないと使えません</span></noscript>
<div id="outText"></div>

 で、何かと便利だなぁと思ったMultiple IEなのだが、あちこち不具合も。Favorites(お気に入り)を使おうとすると印刷画面が出たり、突然強制終了されたり。本体のIEを8にバージョンアップしたらなんだか動作もおかしくなった。まあローカルファイルの確認だけだったら何とか動くから無視。開発もビミョーに止まってるみたいだし、フリーだしね。

 ちなみにMultiple IEでIE3の画面を最初出すと、デフォルトのホームのmsnにアクセスして英語でいちいちCookieの承認を促す画面が出てウザイ。画像のように「Warn before accepting "cookies"」のチェックを外しておけばOK。

 昔はCookie食わすことに賛否両論あったものだけど、今や無駄なCookieを大量に食わすサイトの多くなったこと。裏側で勝手にやられるのが大嫌いなので未だCookie使うのに抵抗があるし。ブログアフィで10回ぐらいリダイレクト(戻るボタン押すと同じページが残ってるアレ)かけてんの見ると「●ね!」とか思うし。昔の人間なので仕方ない。

 それはそうとIE3だと画像のようにCSSのところが全滅で興味深い。まあ今さらIE3に合わせてサイトを作ることもないけどね。なんだかんだ書いたけど、結局はメモリ不足でブラウザが落ちる時代には戻れない。