フレームを解除するには

[上に] [前に] [次に]
masa [E-Mail] 2000/01/17(月) 20:04:55
フレーム分割をしてCGIを呼び出しています。test1.cgitest2.cgiを上下に分けているのですが、そこでtest1.cgiよりエラー判定をして、メッセージを出力しています。このときのエラーメッセージをフレームを外して画面に出したいのですが、どうもうまく行きません。
------------------index.html----------------------------<html><head>
<title>main</title>
</head>
  <frameset rows="35%,*"BORDERCOLOR="pink">
  <frame src="test1.cgi?test1" target="_self" name="top_w">
  <frame src="test2.cgi?test2" name="down" marginwidth=4 marginheight=4>
  </frameset>
</html>
-------------------------test1.cgi-------------------------
#! /usr/local/bin/perl
# ▼▼チェックライブラリ▼▼
require './ch.pl';
if ( &lq'pl( 1 ) ) {
print "Content-type: text/html\n\n";
print "<HTML><BODY>\n";
print '<H3>エラー</H3>'."\n";
print 'エラーとなりました。<BR>'."\n";
print 'まことに申し訳ありませんが、「';
print $ch'Date;
print '」の日時を明記の上、ここの管理人までメールをお願いします。'."\n";
print '至急対処させていただきます。<BR>'."\n";
print "</BODY></HTML>\n";
exit;
}
# ▲▲チェックライブラリ▲▲
&init;
・・・・・・・・・・
・・・・・・・・・・
と、ルーチンを組んでいるのですが、▼▼チェックライブラリ▼▼の部分のメッセージを出すときにフレームを解除して出したのです。
どうぞよろしくお願いします。

きたむら 2000/01/18(火) 03:35:32
ネットスケープ限定技(IEでは使えない)ですが、HTTPヘッダでターゲットウィンドウを指定する方法を以前こちらのラウンジで教わったです。
../199812/98120220.htm
../199911/99110367.htm

というわけで、エラー出力部分の最初を
print "Content-type: text/html\n";
print "Window-target: _top\n\n";
とすれば、フレームが解除されます。

でもIEでは使えない現状では、JavaScriptを併用してフレーム解除するしかないんでしょうね…。
HTTPの仕様に正式に採用されないかなあ>Window-Target

[上に] [前に] [次に]