• 締切済み

IEでブラウザの戻るボタンで戻った際の挙動

WEBのシステム開発をしてるものです。 現在symfonyのフレームワークを使用しWEB開発をしてるのですが ちょっとぶつかった箇所がありますので質問させて頂きます。 ちょい複雑なので説明不足になってしまうかもしれませんがご了承ください。 ある検索機能にてセレクトボックスやラジオボタン等を配置し 項目を選択後に検索ボタンをクリックするとthickboxにて、さらに細かい検索項目が開き thickbox内の検索ボタンを押すと検索結果画面が開くといった流れの画面を作成しています。 ※thickbox内で開くページには選択した項目をgetパラメーターで渡しているのですが その際のURLはjavascriptを使用し動的に作成しています。 ここでまでは問題なく出来たのですがここでブラウザの戻るボタンで問題が発生しました。 検索結果画面(thickbox後)でブラウザの戻るボタンを押し最初の検索項目選択画面に戻り 再度検索項目を選択→thickboxを開く→検索→検索結果画面 と手順を踏むと検索結果画面が一番最初に検索した内容で結果が表示されてしまいます。 しかしfirefoxではそのような事はおこりません。IE6,7,8すべてにおいて発生しました。 デバッグしながら一つづつ追っていったのですが javascriptでthickboxに渡すパラメーターの形成は正常に行われているのですが thickbox内のページのactionが読み込まれてない状態という事がわかりました。 正常パターン ・画面Aで検索項目を選択 ・検索ボタンをおす   ↓ ・action(thickbox内ページ用) ↓ ・thickbox立ち上がる   ↓ ・thickbox内でさらに検索項目を選択し検索ボタンをおす   ↓ ・action(画面B用) ↓ ・画面B検索結果が表示される といった流れになるべきだと思うのですが一度画面Bまで行った後に戻るボタンを押して画面Aに 戻った場合の挙動は ・画面Bから画面Aへ戻る(ブラウザの戻る)    ↓ ・画面Aで検索項目を選択 ・検索ボタンをおす    ↓ ・thickbox立ち上がる といった具合にactionを見てくれていません。 デバッグ方法としてthickbox用のactionを戻るボタンで戻ってきた際に echo 'test';exit; と入れて試しましたがスルーされてthickboxが立ち上がります。 firefoxの場合はtestと出力されて処理が止まってくれます。 正確には、actionを読んでくれていないというよりもthickboxの履歴を開いてるって感じが しっくりくるような気がしてます… 長文、乱文になってしまい申し訳ありませんが、 どなたか解決にとっかかりになりそうな情報をお持ちの方いましたらご教授願います。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

基本的に戻ってきたときの処理などどのブラウザも保証してくれません。 それでもどうしても対応したいなら、IE系は戻ってきたときも onloadメソッドを実行しますので、それを利用するのが妥当です。

tomonkey0225
質問者

補足

回答ありがとうございます。 今回の事象に関してはキャッシュが関わってる感じでして onloadで対処できそうにありませんでした。 キャッシュさせないようにmetaタグなどいろいろな方法を試しましたが なぜかthickboxでページを開く時のみ動作がおかしくなるようでして… もう少し解答待ち&調査続けます。 ありがとうございました。

関連するQ&A

  • ブラウザーの戻るボタンを押して戻ったときのみJavaScriptを実行したい

    スタートページ[1]がありSubmitボタンを押すと、そこから別のページへ[2]リンクし、[3]等へつながります。 [2]や[3]等から[1]にブラウザーの戻るボタンを教えて戻った場合にとあるJavaScriptのコードを実行したいのですが、戻った際にページの再読込をなるべくさせずに行いたいです。 現在、Submitボタンを押すと同時に押したときのパラメータをCookieにも保存してあります。 方法としては以下の2パターンが考えられますが、いずれも方法が分かりません。 ・ページの表示が再び有効になる際、cookieにデータがあればそのデータを使う。 ・ブラウザーの戻るボタンを押した事を判定するコードを使ってフォームを再現する。 御指南頂けませんでしょうか。お願いします。 -------------------------------------------------- 何をしているかといいますと、DHTMLで複数のselectフォームを左から順に、前の項目によって次の項目の内容が変化する、というものを作りました。ですがフォーム送信した後、ブラウザーの戻る機能を使ってフォームのあるページに戻ると元々は[選択してください]という項目しかないために存在しないSelectボックスのOptionIndexを参照され、空白となってしまうのを避けたいのです。(new Optionを利用)

  • サーバーサイドアプリケーションでブラウザでの「検索中」表示

    サーバーサイドのWebアプリケーションでブラウザで例えば「検索」ボタンを押した後に検索結果が表示されるまでの間、ブラウザには「検索中」と表示させて検索が終了した時点で結果を表示する画面に切り替わるという画面遷移のものを見かけます。 これはどのような仕組みなのでしょうか? HTTPの場合、サーバーからクライアント(ブラウザ)へはアクションを起こせないと思いますので、例えば「検索中」を表示しているページにJavaScript等を埋め込んで一定の間隔でサーバーに確認しにいくというようなことをしているのでしょうか?それとも他に方法があるのでしょうか? サンプル等がありましたらお教え頂ければ幸いです。 宜しくお願い致します。

  • プルダウンをトリガーにしたボタンの制御

    以下の処理をjavascriptで実現する事は可能でしょうか? (1)プルダウンにA,B、Cという値が入っていて、Bを選択したときだけボタンを表示 (2)B以外が選択されればボタンを非表示 (3)ボタンは押す事が出来て、それをトリガーに別のアクションを起こす。(別の画面を開くとか) 以上よろしくお願いします。

  • ブラウザの戻るボタン

    いつもお世話になっております。 今回は戻るボタンについてお聞きしたいです。 ある認証が必要なページにログインし、作業終了後ログアウトを選択すると、ログイン認証画面に戻るものがあります。 このログイン認証画面に戻ってきた際、ブラウザの左上(IE,Firefoxの場合)にある戻るボタンを押下すると、ログアウト前の画面に戻ってしまいます。 そこで設定を変更したりなどはできませんが、できればその操作を無効にしたいのですが、ブラウザのボタンの操作を禁止したり、他の場所に飛ばしたりすることはできるのでしょうか? ご教授願います。

    • ベストアンサー
    • HTML
  • ブラウザの×ボタン判定

    ブラウザの×ボタンを押下すると、このページから移動しますか? というダイアログが表示されると思います。 このダイアログには「このページから移動」と「ページに留まる」の二つのボタンが ついています。 このボタンの内、どちらが押されたかを判断したいのですが、javascriptで判定する ことは可能でしょうか? ご教授のほどよろしくお願いいたします。

  • IE8の戻るボタンが効かない

    Internet Explore 8 (OS:Windows7)の環境でGoogleの検索サイトで検索し、その中のホームページにとんで、左上の戻るボタンをで前のGoogleでの検索結果のページに戻ろうとするのですが、戻りません。 同じ語句でYahoo,MSNの検索サイトでは普通検索結果おページに戻ります。 又、他のホームページ間のリンクはちゃんと元に戻ります。 他のブラウザのGoogle Chromeでは同じGoogle の検索サイトでも普通に戻れます。 どうしたら、このIE8でGoogleの検索サイトで戻るボタンが効くようになるでしょうか、教えて下さい。

  • IEブラウザの「検索ボタン」

    IEで「戻る」とか「お気に入り」とか「更新」とかのボタンが並んでいるところにある「検索」のボタンなんですが。。。 その「検索」ボタンを押して、ブラウザ左に出てきた検索窓に検索ワードをいれると検索結果がいくつか出ます。 そこまでは良いのですが、その検索結果にマウスのカーソルを合わせると、ポインタが矢印から指に変わるのに、 クリックしてもリンク先へ飛びません。どうしてでしょうか? 職場のPCを何台か見て回ったところ、普通にリンク先へ飛べるPCとやはりクリックしても無反応なPCがどちらもありました。 OSはXPでインターネットはもちろん繋がっています。

  • ブラウザの×ボタン検出

    こんにちは、みなさま ブラウザの閉じるボタン(右上隅×ボタン)を検出したく、javascriptで、以下を書きました。 window.onbeforeunload = function(event) { event = event || window.event; event.returnValue = "【警告】\nWebブラウザの閉じるボタンが押下されました。"; event.returnValue += "\n\nよろしいですか???? "; } Google Chromeで、次のようなモンダイに行き当たりました。 1.全画面1ページなら、問題なく動きます 2.ところが<FRAMESET>で分割したフレームに開いたページでは、全く動作しないらしく、いきなり閉じてしまいます。 IE10なら、上記1.2.ともに期待どうりに動きます。 このことについて、ご教示いただければ幸いです。

  • jQueryのblockUIをformのボタンから呼ぶ際に、うまくいか

    jQueryのblockUIをformのボタンから呼ぶ際に、うまくいかない。 blockUIを以下のように呼んでいます。 <script type="text/javascript" src="jquery/plugin/jquery.blockUI.js"></script> <script type="text/javascript"> // unblock when ajax activity stops $(document).ajaxStop($.unblockUI); $(document).ready(function() { $('#run').click(function() { $.blockUI({ message: '<h1>お待ちください...</h1>' }); $.ajax({ url: 'xxxx', cache: false }); }); }); </script> その上で、 <input id="run" type="submit" value="お待ちください" /> というボタンを単独でつけて押すと、「お待ちください」と表示するところまで 確認できています。 最終的に実現したいことは、formのsubmitボタンを押すことにより、 パラメータを渡した上で、cgiプログラムを実行することです。 <form action="cgi-bin/search.cgi" method="post"> この中に選択条件(パラメーター) <input id="run" type="submit" value="検索開始"> </form> 現在、blockUIを使わずに、submitボタン押すと、検索CGIが適切に 動くことは確認できています。 そこで、 form action=にどのように書けばパラメーターを持ったまま、BlockUIを呼べるのか。 $.ajax({ url: 'xxxx', cache: false }); の url部分にどのように記述すると cgiを呼べるのか。(cgi-bin/search.cgi)では動きませんでした。 そのあたりをご教授お願いいたします。 blockUIの解説ページでは、CGIの実行や別ページへの遷移のサンプルがなく 困っております。 宜しくお願いします。

    • ベストアンサー
    • AJAX
  • ブラウザに一時的なメモリが影響?

    ネット通販で、注文内容に AとかBのように選択肢がある場合、注文画面でAを選択後,決定ボタンを押す前に同サイト内の別ページを巡回、再び注文画面に戻ってBを選択,これを何度か反復し最終的にAを選択決定し注文した場合、通常であればAで発注になると思われますが、例えばクリップボードなどに蓄積された一時的なメモリ等が影響するなどしてブラウザやPCの脆弱性?などによりシステムが混乱し、結果的にBで注文が完了するというような事態は絶対に起こり得ないでしょうか? あり得ないとは思いますが、念のためお尋ねします。 当方PC音痴、ブラウザはIE11及びChromeです。

専門家に質問してみよう