• ベストアンサー

ブラウザのページ履歴を残さずに遷移させる方法

こんにちわ。 現在、perlにてあるプログラムを作っています。 その中で、数あるCGIファイルをたどっていく際に どうしても、ブラウザに履歴を残さずに 進ませたいのですが、その方法がわかりません。 言い換えれば、一度進んだら戻れなくしたいわけです。 フレーム化してその中のサブフレームで 遷移させたのですが、 物理的にファイル名が変わった場合、ブラウザの 履歴に残ってしまい、戻ることが可能です。 常に新しいページを開かせてもページが 開く座標を全て同一に指定できないと運用上、 よろしくないと考えます。 どうすればこの問題が解消できるか、 ご存知の方が居られましたら回答いただきたいと 思います。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

すみません。perlの方は、まったく no ideaなのですが、 >常に新しいページを開かせてもページが >開く座標を全て同一に指定できないと ということでしたら、 新しく開かれるhtmlに、 <html> <head> <title>******</title> <script language="javascript"> self.moveTo(A,B); self.focus(); </script> と記載し、AとBに好きな座標を入れれば、 開くウインドウの位置を指定してあげることはできます。

aquastep
質問者

お礼

Naodon1020さん、こんにちわ。 ご回答ありがとうございました。 この方法でなら、履歴を残さず、 かつ、ユーザに感じさせるストレスが 軽減されそうです。 早速この方法を使わせていただこうと 思います。 貴重なご意見、ありがとうございました。

その他の回答 (1)

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.2

履歴を消す事自体は不可能です。そのうちブラウザの機能として入るかもしれませんが、現状では出来ませんでしたし(少なくともIEに関してはMSDN NewsのAsk Dr.GUIでその問題が出ていたはず)、できるようになったとしてもすべてのブラウザで可能なわけではないので無意味でしょう(RFCで制定されれば別なんですが) 目的から状況がsubmitページのリロード防止のように思われますので、そのように仮定して話を進めます。 上記の仮定通りであるのであれば以下の方法が使えるかもしれません。 ・・・外れてた場合は無視してくださいね(^^; データを送信するページから、submitページへデータをGET/POSTでなげてやり、受けたページではデータを処理(データベースにストアしたり、メール送ったり色々。要するに本来やりたい事)し、「httpヘッダ上でLocationを使って」別のページに飛ばします。 そうするとwebブラウザ(IE、NN4、Mozzila)ではHttpヘッダのLocationを使ってページジャンプをしているため、ブラウザの履歴にsubmitページ自体は残らない・・・というかLocation先のページとしてデータが残ります。 このため、submit後にリロードされても、Location先のページにしかリクエストは要求されません。 ただし、この方法の場合、URLを指定してsubmitページを指定された場合、問題が出ますので、submitページへのデータ要求はPOSTのみ、パラメータが不正な場合はそれ用の処理をするようにしておくべきでしょう。 一応有名な・・・というか多分GUI系ブラウザはこれで誤魔化せるでしょうが、駄目なブラウザが存在するかも知れません。(テキストブラウザは結構ヤバそうな気がします) ブラウザ上でやる場合、こう言う問題は出てくるものです。下手に悩むぐらいならJava Appletを使ってClient-Serverにしてしまい、データはすべてApplet内で入れる、とするのが最も良い解決法だとおもいます。 もしくは.NETで作っちゃうとか(笑)

aquastep
質問者

お礼

alfeimさん、こんにちわ。 回答ありがとうございました。 なるほど。やはり履歴そのものを消すことは 不可能ですか。 Locationで飛ばす、なるほど参考になりました。 早速試してみたいと思います。 貴重なご意見、ありがとうございました。

関連するQ&A

  • 遷移元を知りたい。

    A.htmlとB.htmlの2つのファイルから1つのPerlを呼び出したいと思います。 遷移元により後続の処理が異なるのですが、どのようにすればAから遷移したか、 Bから遷移したかがわかりますか? Perl&CGIの初心者なので初歩的な質問かもしれませんが、 よろしくお願いします。

    • ベストアンサー
    • Perl
  • HTMLとPerl間のページ遷移について。

    HTMLとPerl間のページ遷移について。 こんにちわ。 HTML(index.html)でログインフォーム(ユーザ名、パスワード)を作成し、そこに入力した情報を、Perl(login.pl)にPOST送信します。 Perlでは、受け取ったパラメータをチェックし、ユーザ名とそのパスワードが正しければ、もとのHTMLファイル(index.html)にページ遷移し、もともとあったログインフォームをJavaScriptで削除し、「ログイン中」と表示させる、ということをしたいのですがわからないところがあり投稿させていただきました。 現在、クライアントでは、JavaScriptを使ってログインフォームを作っています。そして、フォームの中の値を取得して、POST送信することはできます。次に、サーバにてPerlで受け取ったパラメータをチェックし、ユーザ名とパスワードの認証をとるところまではできています。しかし、その後にどうすべきかがわかりません。locationで、もとのHTMLファイル(index.html)を指定しても、ログインを認証したという情報は保持しておらず、それでは意味がありません。 Perlでログインを認証した後に、認証したという情報を保持したままHTMLページに遷移する事は可能でしょうか。可能であればその方法を教えていただきたく思います。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • submitしても正しいページに遷移しない

    eclipse + PDTで、PHPの開発をしています。 phpのファイルを作成して、eclipse上でweb起動しました。 eclipse上にwebページが表示されました。 ところが、submitしても、つぎのページに遷移しません・・・。 URLを見てみると、 http://localhost/C:/eclipse/work/senni_saki.php のように、「http://localhost/」 + 「C:/eclipse/work/senni_saki.php」(遷移先ファイルの物理パス) になっていました・・・。 実際には、 http://localhost/senni_saki.php にようになって、遷移先のwebページを表示してほしいのですが・・・。 ちなみに、送信部分のソースは、 以下のようにしています。 <input type="submit" name="submit" value="送信"> eclipseの設定とか、apacheの設定とか、調べたのですが、 自分では解決できませんでした。 どうしたら、submit後の画面にちゃんと遷移できるようになるでしょうか? ご存知の方がいらっしゃいましたら、おしえてほしいです。 よろしくおねがいします。

    • ベストアンサー
    • PHP
  • cgiにブラウザでアクセスする方法

    vinelinuxでperlを学習しようと思い、とりあえず簡単なcgiのプログラムを書いてみました。そのテストをするためにできた”TEST.cgi”を/var/www/cgi-binの中にいれてブラウザーでhttp://localhost/cgi-bin/TEST.cgiにアクセスしてみたのですが、ページ読み込みエラーとしてlocalhostに接続できません。この場合、どうしたらいいのでしょうか。

    • ベストアンサー
    • Perl
  • pushボタンを押した後、画面を遷移させない方法

    perl か JavaScript で、pushボタン(submit) を押した後、 画面を遷移させないで cgi を動作させる方法はあるでしょうか。 ちょうど、リセットボタンを押したときのような動作が理想です。 裏で動いてて、結果をファイルとか出してくれればいいのですが・・・

    • ベストアンサー
    • Perl
  • フレームページからログを取る方法

    こんにちは。 JavascriptとCGIを利用して、簡単なアクセスログを取っています。 サイトの各ページの<BODY>~</BODY>の中で外部のJavascriptを呼びだし、 そのjavascriptの中で、<IMG src= ・・・・>でCGIを呼び出してファイルに書き込んでます。 ところが、フレームページだと、BODYタグが無いので、framesetタグの中のloadイベントで なんとかしようと思ったのですが、Javascript自体は呼べるものの、 <IMG src=・・・>などとしているため、エラーになってしまいます。 フレームページからログを取る良い方法があれば是非教えてください。お願いします。

    • ベストアンサー
    • HTML
  • トップページへのリンクを押すと戻るボタンの履歴が消えます

    webページを作成しています.いま最後の仕上げの段階で,htmlをちょこちょこいじってます.(WinXP home SP2) フレームを使ってまして,左にメニューを右に内容を表示させるような構造になっています. index.htm にフレームpane1 とpane 2 を設け. pane1 に menu.htm を, pane2 にいろいろな htm ファイルを割り当てます. index.htm をクリックすると左フレームにmenuが,右フレームにTop.htmが最初に表示されます. 右側に来る内容の各ページに index.htm へのリンクを張りました.ところがブラウザでフレームが表示されている状態でこのリンクを押すと,戻るボタンの履歴が消えてしまうんです. 戻るボタンの履歴の最後は,フレームが表示される直前のページになり,それ以後トップページへのリンクが押されるまで,フレームが表示された状態で行き来した履歴が消失してしまいます. トップへのリンクを押すまでは戻るボタンはちゃんと使えるんですけど・・・ 別に新しいウィンドウで表示しているわけではありません.リンクのターゲットは_parent と_Topで試してみましたが両方とも同じ結果です. ブラウザはIE6とOPERA7を使いましたが,両方とも反応は同じでした.

  • ブラウザでページ遷移時に常にurl末尾に、特定の文字列を付与するような

    ブラウザでページ遷移時に常にurl末尾に、特定の文字列を付与するようなことはできますでしょうか。 たとえばhttp://www.test.jp/a.htmlからb.htmlに ページ内リンクで移動する際に、htmlの指定にかかわらず、 たとえば、http://www.test.jp/a.html?test=1 などというふうに 常に予め指定した、引数を付与する、ということです。 意味不明でしたら加筆修正しますのでよろしくお願いします。

    • ベストアンサー
    • HTML
  • ブラウザの「戻る」ボタンを押した時にリロードさせる

    ブラウザの「戻る」ボタンを押して前のページに戻った時に1回だけページを リロードさせたいのですが、そのようなCGIをPerlで作れないでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • contact7任意フォルダにアップロード後頁遷移

    最初に、 wordpress テーマ sango 子テーマ poripu の中で、プラグインで コンタクト7 をインストールして運用しています。 実現したいこと、(3つとも、全て固定ページで制作しています。) 1)問合わせフォーム 2)ファイルアップロードフォーム  (任意のフォルダーに、zipファイルアップロード800MB以下) 3)アップロード完了画面 ≪この頁に遷移させたいのです。≫ 1 → 2 → 3(この頁に頁遷移して終了) <現状> WPテーマ - メインテーマ(sango) - 子テーマ(poripu) - プラグイン(contact7) を使用しております。 1 → 2 ページ遷移確認できました。 2 → 3 任意のフォルダに、ファイルアップロードまでは       確認できました。最後に 3 へページ遷移が       どうしても、できなくて困っています。 -------------------------------------------------------------- <発生エラー> Warning: Cannot modify header information - headers already sent by (output started at ~/test.php:290) in /some/file.php on line 14 エラーコード画面.png(添付ファイル 上部を参照頂けますでしょうか) -------------------------------------------------------------- 【改善を試したソースコード】 (そのため、javascript で改めて、実装しました) エラーコード画面.png(添付ファイル 下部を参照頂けますでしょうか) 改善を試みましたが、エラー表示がなくなりましたが、 同フォームページのママ、リダイレクトはされないままでした。 phpで試していますが、このままリダイレクトされる方法をご教授頂きたく、よろしくお願い申し上げます。 どうしても不明の場合、contact7 のみで同動作可能な方法をご教授頂けますた幸いです。 よろしくお願い申し上げます。 p.s. 不足資料などご指示頂けますと幸いです。