熱いな
2005/03/24
|
朝にジャックスから電話が入り、審査。ローンの審査って生まれて初めてだけど、購入することに同意しますかってのと生年月日確認でした。
昼から引きこもっていつも通りプログラムをしていたのですが、IE 氏ね!!!。二年ぶりぐらいにフォントをいじらせてもらいましたが、本当に IE 氏ね。なんだこの糞ブラウザ。どういう仕様なんだというか、全然他のブラウザと同じ動作しねえ。わざわざインターネットエクスプローラに合わせるために、プログラムルーチンを組まないといけない最悪な現実です。
一つめ:ダウンロード。
これは apache 組み込み php で発生して、cgi 動作の php だと出ないような感じなんだけど、直接下記のような php の header 命令でファイルを転送すると IE だと Content-type も Content-Disposition も無視してくれて、不明なファイルでダウンロードを始めようとしてダイアログが出るも途中でダウンロードを失敗します。他のネコミ、Netscape,firefox,Opera,lynx,w3m では問題なくダウンロード出来ます。IE での解決方法はただ一つ。リンクさせるということだけ。要するに直接 URL を打つとダウンロードしないけど、リンクに張られたのからこればダウンロード出来るって事です。この糞ブラウザの為に、ワンステップ置く必要があります。
<?php
$_pushfile = 'z.zip';
if( is_file( $_pushfile )){
$_fsize = filesize( $_pushfile );
$_flast = date( "D, d M Y H:i:s T" , filemtime( $_pushfile ));
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=hoge.zip");
header("Last-Modified: $_flast" );
header( "Cache-Control: no-cache" );
header("Accept-Ranges: bytes");
header("Content-Length: $_fsize");
readfile( $_pushfile );
}
?>
二つめ:アップロード
糞ブラウザの IE だけが、アップロード終了時に Location タグで新しい URL に飛ばそうとすると白紙画面になって飛びません。ネコミ、Netscape,firefox,Opera,lynx,w3m では問題なく飛びます。このおかげで普通にアップロード終了画面を出す必要があります。なぜこれだと駄目かというと、リロードされるとよけいな負荷がかかるので、出来るだけ負荷のかかる処理のある POST 後は新しい URL に飛ばす方が得策なわけです。でも、この糞ブラウザのためにそう言うことが出来ません。
三つ目:環境変数
糞ブラウザの IE だけが、戻るボタンで戻った場合とリンクで飛んだ場合の環境変数が違うというわけのわからない動作をしてくれます。環境変数なんて「自分はどういう処理が出来ますよ〜」ってサーバに知らせる変数なんで新しい機能をインストールでもしない限り変わらないはずなのですが、IE だけは変わってくれます。あれだ、面接では「私は A も B も C も出来ますよ!!」って言っているけど、一歩部屋を出たら「出来るわけねーよ!」って言っているようなリクルーターと一緒で駄目駄目です。なんでこんなブラウザが使われているのか全く理解不能ですが、このおかげで環境変数で個体のブラウザを判別出来ないということになりました。なんのための環境変数だ。
なわけで、糞ブラウザを使わないでください。そのモジュールを使っているブラウザももちろん同様の動作をするので最悪です。なので、この糞ブラウザが便利だと言っているオートコンプリートなる機能を効かせないようにすれば便利さも半減( 言い過ぎ )するだろうから、少しでも抵抗出来るようにあなたのサイトにある form タグに autocomplete="off" を入れるのをおすすめします。レジスタンスよ、立ち上がれ!!!
本日の気分:熱いな:0 時間( 計 0 時間 )
|