InternetExplorer は本当に糞ブラウザやのお[プログラミング]
(2019-08-12 09:30:40) by shinoda


< ページ移動: 1 2 >

4年前にも「InternetExplorer の馬鹿さ加減には本当にうんざり」ってエントリーで同じことを書いてた(笑)
マジで InternetExplorer は糞。

例えば、こういうスクリプト。

function disp_input_area2() {

var form = document.forms.form1; 

if (form.kaito.value == "希望する") {
document.getElementById('input_area2').style.display = 'block';
}
else {
document.getElementById('input_area2').style.display = 'none';
}

}

HTML はこうね。

<input type="radio" name="kaito" id="kaito" value="希望する" onclick="disp_input_area2();" >希望する<br>
<input type="radio" name="kaito" id="kaito" value="希望しない" onclick="disp_input_area2();" >希望しない

これは、Chrome でも  Firefox でも(つまり InternetExplorer(以下 IE) 以外では)ちゃんと実行される。

form で、「回答を希望する」というラジオボタンを選んだら名前やメールアドレスを入力する部分(<div id="input_area2">で囲まれた部分とか)がパクっと開くという動きをするわけだ。

ただし、IE では動かない。

IE では、チェックされた radio ボタンの value 値を取れないからだ。undefined になる。

糞である。

なので、value 値を使う代わりに、radio ボタンの checked な状態を全部調べる必要がある。
だから、例えば以下のようになっちゃう。

function disp_input_area2() {

var form = document.forms.form1; 
var kaito = form.kaito;
var flg = "no";

for (var i = 0; i < kaito.length; i++) {
if (kaito[i].checked == true) {
if (i == 0) {
flg = "yes";
}
}
}

if (flg == "yes") {
document.getElementById('input_area2').style.display = 'block';
}
else {
document.getElementById('input_area2').style.display = 'none';
}

}

糞だ・・・
value 値で判断するほうが自然だしソースもシンプルである。

時々、なんでか知らんけどブラウザの中で IE が一番好きとかいう変態技術者に出会うこともあるんだけど、賢い人ならやっぱり IE は捨てていかないと。

前にも書いたけど、例えば社内 Web システムの実行ブラウザとして IE を指定している情報管理部門やメーカーって怠慢だと思うのよね。

< ページ移動: 1 2 >


コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8