• 締切済み

同じ画面を開かないようにしたいのですが

HTML上のTEXTにパラメータを入力して、SUBMITボタンでPerlのCGIを動作させて結果を別窓(TARGET=_blank)でブラウザに表示させています。ここまではできているのですが、これで例えばボタンを3回押すと、3つ同じ画面(パラメータによって結果は違います)が開いてきます。 これを1回目で開いてきた画面が残っている間は、2回目以降開かないというか、ボタンを押しても無視される(意味わかるかな?)ようにしたいのです。 TARGET=_newなら一見大丈夫そうに見えるのですが、ブラウザの「戻る」に開いた履歴が残る(多分CGIは動作してしまっている)ので避けたいと思っています。 環境は以下の通りです、実現可能でしょうか?可能であればその方法をご教授お願いします。 不可能の場合、他の言語ツールで出来そうならそんな情報でもかまいませんのでよろしくお願いいたします。 現在の環境 サーバー:Windows2000Server IIS 5.0 Perl 5 クライアントIE5.5もしくは6.0

みんなの回答

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

HTTPの仕組みでは、相手の要求に対しWebサーバーが返答した時点でセッションが終わり、Webサーバー側としては「後の事は知ったこっちゃない」って事です。 つまり「画像が残っている間は」という事に関し、Webサーバーは何も関知出来ません。 いったん画像をダウンロードしてしまった後(表示はダウンロードですから)、クライアントがどうしようが、サーバー側には分からないわけです。 PerlCGIはサーバーサイドスクリプトのため、当然サーバーが分からない事に関し、何も出来ません。 この場合はクライアントサードでどうにかする必要があります。 JavaScriptで制御可能ですが、クライアントがJavaScriptを使用しない設定になっていれば、どうしようもありません。 って、事で諦めましょう(^^; Cookieを利用して、「5分以内には表示しない」とかは出来そうですが… これもクライアント側がCookieを利用しないにしていては…

tikuuni
質問者

お礼

kusukusuさん、回答ありがとうございました。 PerlCGIは諦めます。社内イントラなのでJavaScriptを使用する設定にはできますので、JavaScriptで制御可能なのであれば、その方向で勉強します。 Cookieの利用より手っ取り早そう(かな?)。。。 とりあえず、方向性が決まってスッキリしました。

関連するQ&A