Perlの中で別ウインドウを開くには?
[上に]
[前に]
[次に]
ふにゃちん
1999/11/26(金) 11:58:13
cgi(perl)の中で、
print "Content-type: text/html;CHARSET=xxxx\n\n";
:
:
とすると、実行中のブラウザウインドウにHTMLを表示しますが、これを別ウインドウに表示するように出来ないでしょうか?
(^_-)
1999/11/26(金) 13:18:47
新しいウインドウをJSで開いて、対象をそのCGIにすればいいんでないの?
間違ってたらスマンす。
(JS使わないと多分むりだと思う)
ふじ
1999/11/26(金) 14:14:11
呼び出す時に
<FORM action="hogehoge.cgi" target="another_window">
または
<A href="hogehoge.cgi" target="another_window">
みたいに、targetを指定してやれば別ウィンドウで開きます。
#サイズ指定とかをしたければ JavaScript が必要ですけど。
ふにゃちん
1999/11/26(金) 16:12:06
ちなみにやろうとしているのは、
<FORM ACTION="hoge.cgi">
として、通常の結果はそのウインドウに出力し、エラーの場合だけ別ウインドウに出力したいと思っています。
というわけで、申し訳ないっすが「ふじ」さんの案は使えません…。
ふじ
1999/11/26(金) 16:46:19
NNならば(Windows版 3.01, 4.6 で確認)
エラーが起きたときに,
Content-Type: text/html
Window-Target: error
こんな風なヘッダを出せば、別ウィンドウを開けるようです。
#IEでは駄目みたい。
あとは、CGI が出力する HTML に
・別窓を開いてエラーメッセージを表示
・一つ前に戻る
という動作をする JavaScript を仕込むとか。
ふにゃちん
1999/11/26(金) 17:07:00
print "Content-type: text/html;Window-Target: error;CHARSET=x-sjis\n\n";
print "<HTML>n";
:
:
としましたが、別ウインドウにはならずに、同じウインドウへの表示となりました。
ちなみに、「エラー」と言ったのは、あくまでもPerlの結果の上での話であって、Perl文法がエラーという意味ではありませんので・・・。
ふじ
1999/11/26(金) 17:12:50
>print "Content-type: text/html;Window-Target: error;CHARSET=x-sjis\n\n";
ではなくて、
print "Content-type: text/html;CHARSET=x-sjis\nWindow-Target: error\n";
又は(見やすく書けば)
print <<END;
Content-type: text/html;CHARSET=x-sjis
Window-Target: error
END
こうね。
Content-Type ヘッダと、Window-Target ヘッダを出す、ということ
なので。
ふにゃちん
1999/11/26(金) 17:14:38
失礼しました。
たった今、ふじさんの書いた方法でやりなおしたところでした。
でも、やっぱりIEではだめですね
ふじ
1999/11/26(金) 17:37:51
だったら JavaScript しかないかなあ・・・
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
w = open("", "w");
w.document.open();
w.document.write("エラーだよ");
w.document.close();
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="history.back()">
勝手に戻るぞ。
</SCRIPT>
</BODY>
</HTML>
エラー時にはこんなのを出力すれば、別窓にエラーメッセージを出して、
元の Window は一つ前に戻りますけど。
非対応ブラウザ(+JavaScript 切ってる人)の為に、
上の「勝手に戻るぞ。」の部分にもエラーメッセージを出して、
更に「バックボタンで戻って下さい」というような
メッセージを書いておくと良いでしょう。
ふにゃちん
1999/11/26(金) 18:00:31
[[解決]]
うぉぉ、すごい。
今、実行して感動してしまいました。
ありがとうございました。>ふじさん
タダで答えてくれるなんて、まったく!
わたしも早く皆様のお役に立つようにならねば!
[上に]
[前に]
[次に]