- ベストアンサー
画面制御について
お疲れ様です。 XMLで作成した画面にイメージがたくさんあり、表示にかなりの時間を要します。 画面を表示している最中にボタン、リンク等が押せてしまうため、エラーを起こす原因になる場合があります。 全部表示するまで全て無効にしておきたいのですが、こういった場合、皆さんはどのような制御をされているのでしょうか。 もしくは無効にするのではなく、他に何かお勧めの方法はありますでしょうか。 初心者なので、簡単なことなのかもしれないですがわかりません。。 どうぞよろしくお願いいたしますm(__)m
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
画面のロードが終わったかどうかのフラグを用意して 画面のロードが終わった時(bodyタグのonLoadイベント)にフラグを変更する。 ボタンやリンクなどは、直接submitしないようにJavaScriptからsubmitするようにして そのfunction内部でロードが完了したかどうかを判定してsubmit(またはlocationの変更)をするようにしてみては いかがでしょうか? 具体的には下記のような感じです。 <script type="text/javascript"> var loadFlg = false; // ロードフラグ // ボタンなどのイベント処理 function btnClick() { if (!loadFlg) { alert("ロード中のため、お待ちください"); } else { // ボタン押下処理 form.submit(); } } // ロードされた時にフラグを変更する処理 function dispLoad() { loadFlg = true; } </script> <body onLoad="dispLoad();"> : :
その他の回答 (1)
- grace2973
- ベストアンサー率66% (16/24)
#1の回答に対する補足についてですが 「メッセージダイアログを表示しておいて親ウィンドウはさわることができなくする」 は、おそらくできないと思います。 子ウィンドウ(またはメッセージ)を表示して 親ウィンドウをさわれなくするようにすると、 そのウィンドウを表示した時点で、親ウィンドウの処理が止まります。 それは、そのウィンドウの復帰を待つからです。 (ウィンドウの入力値などを取得するため)
お礼
お礼が遅くなりましてすみません。 #1を参考にいろいろと試行錯誤しております。 ご回答いただきありがとうございましたm(__)m
補足
お忙しいところ、早速ご回答いただきありがとうございます。 上記の方法でも十分だと思うのですが、ボタン自体をおせないようにする方法はあるのでしょうか。 考えたのですが、【ロード中です】のようなメッセージダイアログを表示しておいて、親ウィンドウはさわる事ができなくし、ロードが完了すると画面を消す。という方法は可能でしょうか。 どうぞよろしくお願いいたしますm(__)m