CGI で特定フレームを指定して実行する方法
Perl CGI でフレーム分割したアプリケーションにおいて、リクエスト毎の認証チェックでエラーになったときに、フレームの親、つまり全画面("_top")で認証画面にリダイレクトする要求仕様を満たすために、いろいろ調べました。次のようなヘッダーを出力すれば良いみたいです。
print "Location: http://www.xxxx.co.jp/auth.cgi\n";
print "Window-Target: _top\n\n";
print "Window-Target: _top\n\n";
特定のフレームを指定して書き換えたいのであれば、「Window-target: フレーム名」 とすれば良いようです。本当は、CGI.pm の redirect メソッドとで header メソッドを組み合わせて、
print $q->header( -Window-Target => '_top' );
print $q->redirect( 'http://www.xxxx.co.jp/auth.cgi' );
print $q->redirect( 'http://www.xxxx.co.jp/auth.cgi' );
とやりたかったのですが、うまくいかなかったので、直接書きました。単に書き間違えただけかなぁ・・・?
- スポンサーリンク -
コメントやシェアをお願いします!
drk
miyagawaさま>アドバイス有り難うございます。早速月曜日に試してみたいと思います。ちなみに、Sledge の Autorizer 部分でリダイレクトして…って感じのを作ってたりします。
miyagawa
-Window_Target と "_" でつなげればいいかとおもいます。
(-Window-Target はSyntax Error ですね)
drk
ねねさま>確かにブラウザ依存がありますね。なので正しく動いているかの検証が難しいんですよね。どのブラウザで動作するかは検証中です。
ねね
これって、全てのブラウザで採用されてますでしょうか。
私が調べたのって数年前なので今のIEやFirefoxは判りませんが、数年前の標準的ブラウザでは一部のものにしか採用されてなかったような…。