InternetExplorer の馬鹿さ加減には本当にうんざり

InternetExplorer(以下 IE)という糞ブラウザも、それを「業務で使用する標準ブラウザ」に選定する情報システム部門も大嫌いだ!・・・と叫びたい夜であります。

今、IE11 を使ったテストをしているんですが、例えば、ラジオボタンの内容が変更されたかどうかのチェックを、初期状態が

<input type="hidden" name="OLD_FLG" value="1">
<input type="radio" name="FLG" value="0">0番
<input type="radio" name="FLG" value="1" checked>1番
<input type="radio" name="FLG" value="2">2番

という FORM で行います。

OLD_FLG に現在の DB の内容 '1' がセットされ、value="1" のラジオボタンが checked な状態になっているわけですな。この HTML は PHP のプログラムで動的に吐き出しています。

この状態で、例えば「2番」にチェックし、submit すると、

if (window.document.form.elements[FLG].value != 
        window.document.form.elements[OLD_FLG].value) {
    <以下略>

みたいな JavaScript が走って、OLD_FLG と FLG の内容が違えば、変更が行われたと判断して別の Function が走ったりするわけですな。

Chrome でも Firefox でも問題なく動いています。
上記のような場合は、window.document.form.elements[FLG].value に '2' が、window.document.form.elements[OLD_FLG].value には '1' がセットされているので、ラジオボタンが更新されたな・・・という判断が出来るというわけです。

ところが、IE11 だけ処理が落ちちゃうんよねえ、途中で。

原因は、上記 JavaScript が走った時点で、window.document.form.elements[FLG].value が undefined だから。

どうも、IE11 では FLG 配列の中のどれが実際に checked な状態になっているかを調べて、その値で比較をしないと駄目なようですな。
具体的には、

var wk_flg = document.form.elements[FLG];
for (var i = 0; i < wk_flg.length; i++) {
    if (wk_flg[i].checked == true) {
        if (wk_flg[i].value == window.document.form.elements[OLD_FLG].value) {
    <以下略>

みたいな面倒くさいことをしなくちゃいけない。

InternetExplorer 信者は「こっちの方が正しい!」とか戯言を言いそうだけど、JavaScript が実行された時、その時点の画面の状態(FORM の入力状態)が有効になっていると考えるのが自然だろう。チェックされている radio ボタンの value 値が「undefined 」というのは不自然やわあ。

「どちらのやり方でもいい」は有りだとしても(実際、Chrome や Firefox はどっちのやり方でもOK)、配列としてひとつひとつ checked になっているかチェックして、その値をそのラジオボタンの選択値とする・・・なんてやり方は無しやで。

ほんま、なんでこんな糞ブラウザを有り難がる輩がいるのか理解に苦しむ。日本の Web プログラマのレベルの低さの現れか・・・

さっさと IE なんか捨て去っちゃえばいいのに、「OS パッケージに最初から含まれている」という理由だけで使っちゃうんだよなあ。
正直、企業内で IE を使い続けているというのは、情報システム部門(担当)の怠慢だと思う。
Clip to Evernote

トラックバック(0)

このブログ記事を参照しているブログ一覧: InternetExplorer の馬鹿さ加減には本当にうんざり

このブログ記事に対するトラックバックURL: http://blog.netandfield.com/mt/mt-tb.cgi/3619

コメントする

このブログ記事について

このページは、shinodaが2015年9月24日 01:33に書いたブログ記事です。

ひとつ前のブログ記事は「初めて自分の銃で標的射撃をしましたぞ(射撃編)」です。

次のブログ記事は「愛俺弁当(特別編)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら