最近、他所の会社で作ったWebシステムの修正とかしてたり。このシステム、Macのブラウザで全く動作しないということでクライアントから相談されて「じゃぁわかる範囲でうちで対応しますよ」という感じで請け負ったもの。
聞いた範囲から推測はできたがやっぱりJavascriptあたりでちゃんと動作しないものというか、WindowsのIEだけでしか対応していなかった。ひでー。
クライアントで使用するマシンはWindowsXPの他にデザイン部門で使用しているMacOS9。MacOS9となるとブラウザがかなり悲しい。MacIE5.1や、Netscape7.02。MacIE5も使うということになるとAjaxな作りはまず除外。ベタベタなJavascriptで作っていくしかない。まぁ、Netscape7系があるだけでもマシかと思いきやこいつがNetscape7.1と微妙に挙動が違う。
function eAct(keyCode){
if (keyCode == 0x0d) {
※ keyCode == 13にしてしまうと動かないのでASCIIに変換
alert('Enterキー');
}
}
<input name="a" type="text" onKeyDown="eAct(event.keyCode)" onKeyPress="eAct(event.keyCode)" /> onKeyDownのイベント処理だけにすると7.02は動かない。 onKeyPressイベントも含めてやると7.02でも動くようになる。
つーかIEの挙動がすべて正しいと思っているこのシステムを作った会社は一体どういう教え方をプログラマにしているのだろう...。IEはユーザ数が多いだけであって決して正しい挙動をするわけではない。それだけでもプログラマなりに教えてやらないとだめにゃんねぇ。