WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:MAC IE5.0での動作不具合

0:[投稿] ぽぽ [2002/11/21 16:48 ][環境:MAC+IE UNIX系+Java]

いつもお世話になっています。ぽぽです。

MACでのIEの動作について質問があります。

データを入力する親画面よりwindow.open()
で開いた子画面があります。
子画面は<BODY>タグに「onBlur="focus()"」を挿入
しており、親画面に対してモーダル状態です。

モーダル状態の子画面には<SELECT>〜</SELECT>の
リストボックスがあり、複数選択可能になっています。

複数選択後、実行ボタンを押すのですが、5項目以上選択状態
である場合には「5項目までしか選択できません」のalertを表示
します。

alertを表示した際に、WINDOWSでは問題なく表示されるのですが
MAC IE5.1では表示した瞬間に「親画面」がいきなり最前面に
表示されてしまい、alertを押すには親画面を移動しなければ
なりません。子画面をモーダルにしたのが原因だと思うのですが
子画面のモーダルは外せないのです。

よい打開策があれば教えて下さい。
よろしくお願い致します。


1:[回答] Malic [2002/11/22 09:34 ]

子ウインドウの onBlur="focus()" を条件付きでフォーカスを与えるように変更するとか。

例 onBlur="if(document.FORM.focuscheck.value=='0'){focus();}" など。(子ウインドウに隠し変数を埋め込んで置く方法。)
もちろんalert出す前に変数の値を変える事。

この方法を取るときは、必ずonLoadで初期化したほうが良いです。



2:[保留] ぽぽ [2002/11/22 13:52 ]

Malicさんありがとうございます。

おっしゃる通り、alert表示時にフォーカスを変更してみるのが
よいかと思いました。試してみてから報告します。

しかしMacとWinのIEでも結構動作が違うのは意外でした。
(IEとNNは仕方ないかな、と思いますけど)

ありがとうございました。


3:[完了] ぽぽ [2002/11/22 18:43 ]

Malicさん、試してみました。

子画面にHIDDENでフラグを持ち、アラート表示前にOFFにしアラート
を表示します。この時点でFocusが外れ、親画面が前面に出なく
なりました。アラートのボタンを押下後にフラグをONに戻します。

---------------------- HTML部分 ----------------------
<INPUT TYPE="HIDDEN" NAME="flg" VALUE="1">←初期設定
<BODY onBlur="if(document.FORM.flg.value=='1'){focus();}">

---------------------- Script部分 ----------------------
if( cnt > 5 ) {
   document.MainForm.flg.value="0";
   window.alert("選択された項目は5項目まで");
   document.MainForm.flg.value="1";
   return false;
}

助かりました、ありがとうございました!

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World