続・CGIの処理が終わったらサブウインドウを閉じたい
[上に]
[前に]
[次に]
ゴリベー4.0
1999/12/09(木) 19:16:37
../199911/99110406.htm
で話題になってたんですが、さっぱり理解ができません。
具体的なソースってないですか?
P初心者
1999/12/10(金) 10:25:24
具体的なソースは私はありませんが、ポイントは2つ!
1、CGI起動時に onSubmitハンドラで処理中のメッセージをだします。
2、CGIがデータ処理を完了したらJavaScriptの window.close()をCGIから標準出力します。
ゴリベー4.0
1999/12/10(金) 13:21:04
P初心者さん、ポイントありがとう。
でもわかんないです・・・
まず、1番のonSubmitでは何をさせればいいんでしょう。
P初心者
1999/12/10(金) 14:11:37
要は、サーバー側で時間のかかる処理をCGIがするわけです。
その間、その処理の要求を出した人にブラウザで「処理中ですよ!」
って、メッセージでCGI実行中の認識をしてもらうんです。
たとえば、こんなかんじ〜
<SCRIPT>
function ShoriMsg(){
document.write("<H2>CGIを処理中ですよ!</H2>");
return true;
}
</SCRIPT>
<FORM METHOD=POST ACTION="wwwlng.cgi" NAME="TSTFORM" onSubmit="return ShoriMsg()">
<INPUT TYPE="submit" VALUE="長い処理のCGI">
</FORM>
ゴリベー4.0
1999/12/10(金) 16:41:19
う〜ん、だめっす。わかんないっす。
perlでサブウインドウを消す方法を教えてください。
JavaScriptのwindow.close()を標準出力っての、やったんだけどできないんですよぅ・・・
一応何がやりたいか書いておきますね。
■ 親ウインドウから、入力フォーム用のサブウインドウを開く。
■ そのサブウインドウからsubmit。
■ サブウインドウはもういらないので閉じる。
■ 親ウインドウを更新。
って感じなんですが、どうでしょう。
P初心者
1999/12/10(金) 19:04:50
だったら、
サブウインドウからsubmitしてCGIを起動したときに、TARGETを親ウインドウにしときます。
そして、このサブウィンドウを同時に閉じます。(JavaScriptのwindow.close()で)
そうすれば、CGIで普通にHTMLを標準出力すればすべて丸く収まるわけです。
尚、TARGETは<FORM>タグ内に記述します!
P初心者
1999/12/10(金) 20:51:19
今、自宅なのテスト環境ないんですが、
サブウインドウのScriptはこんな感じです。
<SCRIPT>
function ShoriMsg(){
window.close();
return true;
}
</SCRIPT>
<FORM METHOD=POST ACTION="wwwlng.cgi" TARGET="親のウィンド名" onSubmit="return ShoriMsg()">
<INPUT TYPE="submit" VALUE="長い処理のCGI">
</FORM>
これが駄目だったらタイマーかける。
<SCRIPT>
function WClose(){
window.close();
}
function ShoriMsg(){
setTimeout(WClose(),1000);
return true;
}
</SCRIPT>
<FORM METHOD=POST ACTION="wwwlng.cgi" TARGET="親のウィンド名" onSubmit="return ShoriMsg()">
<INPUT TYPE="submit" VALUE="長い処理のCGI">
</FORM>
[上に]
[前に]
[次に]