『こぶたのラッパ』はサイトを移動しました!
今後はこちらをどうぞ
2006年 11月 08日
JavaScript Tips:プルダウンメニューのevent処理
c0007274_1233913.gifJavaScriptでHTMLフォームの制御を行うことはよくありますが、プルダウンメニュー(ポップアップメニュー/<select>タグ)にonclick/onmousedown/onfocus/onkeydownなどのイベントをくっつけようとすると、Internet Explorerで
「開いてほしくないオプションメニューが開いてしまう」という問題になることがあります。

その回避方法を2つ発見。
(「document」の後にスペースが入っているのは、exciteブログの制限です)
  1. blur() してすぐに focus() する。
    document .getElementById("select1").blur();
    document .getElementById("select1").focus();

  2. size = 2 してすぐに size = 1 する。
    document .getElementById("select1").size = 2;
    document .getElementById("select1").size = 1;

最初のほうの方法は主にonkeydownに有効で、
二つ目の方法はonmousedownに有効です。

ちなみにFirefoxでは、Prototype.jsのEvent.stop(event)(cancelBubble = trueをクロスブラウザで実行してくれる)を使えば、同じ問題は起こりません。
[PR]
by smilkobuta | 2006-11-08 12:49 | コンピュータ

<< 『水からの伝言』をありうると感... フリーになってよかったこと >>