セレクトメニューのvalueとtext
Internet Explorer 7用にAJAXアプリのインターフェースを手直ししていて、最終的にはけっこうまともに動くじゃないのという結論に至りました。今まで動かなかったのは自分の手抜きとJavaScriptの邪道な書き方が原因だったかと (^^;
どこがいけなかったかというとセレクトメニューの処理でした。Safari、Firefox、Opera、Netscape Navigatorではセレクトメニューで選択した項目を得る時にvalueが設定されてないとvalueと書いても自動的にtextを選んでくれます。例えばshokujiというセレクトメニューの選択された項目を得たい時は、
taberu = document.getElementById('shokuji').value;
だけで
meshi1 = document.getElementById('shokuji').selectedIndex;
taberu = document.getElementById('shokuji').options[meshi1].text;
とやるのと同じ結果が得られます。Internet Explorer 7ではこれは使えず下側の書き方をせねば動きませんでした。Internet Explorer 7の方が他のブラウザに比べて基本に忠実なんですけど、怠け者のわたしにとってはちょっち痛いところだったかと。最初に手を抜くと後々苦しむという典型的な見本ですね。情けない...
それにしてもインターフェースでJavaScriptに頼らざるをえない部分でのInternet Explorer 7の動きはかなり優れていますな。Safari程ではないですが、FirefoxやOperaなんかよりずっと速いですし非常に安定した動きをします。正直見直しました。FirefoxやOperaだとサーバー側から送られてくるデータの量が多いとよくこけるんですが、Internet Explorer 7ではそんなことは全くありませんでした。後はselectionStartとかサポートしてくれたらかなり使えるんだけどな。
« ParallelsのBenjamin Rudolph氏がブログで | トップページ | Netscape Navigatorが »
この記事へのコメントは終了しました。
« ParallelsのBenjamin Rudolph氏がブログで | トップページ | Netscape Navigatorが »
コメント