戻るボタンで戻れない

このQ&Aのポイント
  • 戻るボタンで戻れなくなった問題について、ブラウザの戻るボタンを連打した際に発生する現象について考えます。
  • 書き換え前の状態に戻り、再びonloadしているような状態が発生し、特定のブラウザで問題が生じていることが確認されました。
  • 連打する癖のあるユーザーに対しては、ボタン右の▼を使って戻ることができるため、この方法を案内することが有効です。
回答を見る
  • ベストアンサー

戻るボタンで戻れない

onloadでdocument.writeを呼び出してページ全体を書き換えるようにしているのですが、ブラウザの戻るボタンで戻れなくなりました。 書き換える前に戻って再びonloadしているみたいです。 IE6.0,NN7.0,Opera7.11で試してみたところ、IEでこの現象がおきました。 NNは期待通りに動きます。Operaは書き換える前の状態に戻りますが、onloadしない(Javascript無効用ページ)のでもう一度戻るボタンを押せばOKです。 ボタン右の▼で戻ることはできますが、戻るボタンを連打する癖のある人っていると思うんですね。 何か良い対処方法はあるでしょうか?

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

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

戻るボタンでスムースにページが移動するような形にするのであれば、根本的に違う方法を取った方が早いかも知れません。 ブラウザの戻るボタンにおける挙動を操作する方法はないようですので、ページの作り方を変えるのが早いのではないかと… 具体的なソースを示してみますが… <html> <head> </head> <body> <script type="text/javascript"><!-- document.open(); document.write("JavaScript有効"); document.close(); // --></script> <noscript>JavaScript無効</noscript> </body> </html> 上記のように、body内に記述したscript要素のJavaScriptでページ内容を書き出すようにしておき、JavaScriptが無効の環境ではnoscriptが適用されることを利用する方法では代用できないでしょうか。 上のようにすると、JavaScriptが有効な環境ではbody要素内のdocument.write()でJavaScriptが有効な環境に向けての内容が書き出されますし、JavaScriptが無効な環境では<script>は無視されて、<noscript>要素の内容が適用され、表示されると思います。 また、documentストリームをページロード後に開きなおすこともないので、ブラウザによって挙動に差が出ることもないと思いますし、戻るボタン一発で前のページにも戻れると思いますよ。 こういった方法ではいかがでしょうか? 見当違いでしたら、ごめんなさい。

itomizu
質問者

お礼

回答ありがとうございます。 教えていただいたように<body>~</body>内に関数内部の文を書くことにより、スクリプトを少々いじることになりましたが解決いたしました。

関連するQ&A

  • ネットスケープ6を簡単に判別する方法?

    ブラウザの判別方法についてなんですが、IEとNN4の判別方法については雑誌などでよく見かけるのですが、NN6を簡単に判別する方法が載っている本が見つけられませんでした。 NN6を簡単に判別する方法を知っている方がいたら、教えて下さい。 ちなみに、IEとNN4は次のようなif文で判別しています。 if (document.all) {  // IE if (document.layers) { // NN4 また、NN6と「Mozilla」は、別のものとして判断しないといけないのでしょうか? (JavaScriptでできることに、大きな違いがあるのでしょうか?) それと、最近よく耳にする「Opera」というブラウザも、IEやNNとはまった区別の判定方法をしなければいけないのでしょうか? このMozillaやOperaのJavaScriptに関する情報を載せているページなどがありましたら、是非教えて下さい。

  • 印刷ボタンを連打するとエラーになります

    お世話になります ブラウザー(IE)の画面に印刷ボタンを作成し、 JavaScriptの  window.print(); で印刷ウィンドを開くようにしているのですが このボタンを連打すると  「エラー:アクセスが拒否されました」 というJavaScriptのエラーが発生します これはIEのバグなのでしょうか もちろん連打されないようにするのは簡単なのですが (disabledにするなど) バグなのかどうかわからないので質問させていただきます。 よろしくお願い致します。

  • Webブラウザの閉じるボタン無効化についての質問

    お世話になります。 現在、ASP.NET(C#)にてIEブラウザの閉じる(×)ボタンを 非表示にするあるいは無効にする処理を加えようとしています。 現行では、JavaScriptのonbeforeunloadにて閉じるボタン 押下時の処理を加えています。 しかしながら、処理を加えた後閉じるボタンを押下した際に 「このページからほかのページに移動しますか?」確認MSG が表示されてしまいまして、「OK」を押下すると画面が閉じて しまいます。 IEの閉じるボタン無効化の機能が成立しません。 そこで質問としまして、 ・IEブラウザの閉じるボタン無効化 ・IEブラウザの閉じるボタン押下時に表示される  「このページからほかのページに移動しますか?」確認MSG  を非表示にする 方法がございましたら、ご教授お願い致します。

  • .NET(VB)でボタンの連打を防止する方法

    お世話になります。 以前開発したVB.NETのアプリケーションでボタン(submit)を連打すると「ページを表示できません。現在、多数の人が Web サイトにアクセスしています。」という現象が出てその対応策を考えています。 実際にはボタンのクリック連打ではなく、ボタンにフォーカスを当ててキーボードのリターンキーを押しっぱなしにするとリクエストが何度もサーバーへ送られて上記のような現象となります。 対応策としてボタンが押された瞬間にJavaScriptでフラグをONにし、そのフラグがONである間は次のJavaScript:onClickイベントをreturn falseするような作りとしてみました。 ボタンは何個かあり、submit後の処理に時間が掛かるもの(情報検索)はそれで対応できたのですが比較的応答が早い処理(検索条件フォームのクリア機能)ではやはり同様のエラーとなってしまいます。 JavaScriptを使い、ボタンそのものを無効化(form.ボタン名.disabled = false)を試みましたが.netの場合はボタンを無効化させるとサーバーサイド(VB)でのpage_load処理が止まってしまうようで無応答となります。 押した瞬間にボタンを無効化させて見た目にも押した状態を表現できるのが一番好ましいのですが、連打を防止しつつボタンを無効化させる方法は無いでしょうか? また、ボタン無効化は無理としても他に連打の対応策がありましたらご教示願えたらと思います。

  • IE8の「戻る」ボタンがおかしい

    カテゴリがこちらでいいのか自信がないのですが。。。 先月くらいでしょうか、ブラウザをIE7からIE8に変えました。 目立ったバグなどもなく不便ということもないのですが 一つ気になることがありまして、そのことについて質問させていただきます。 私はブラウザのトップをYahooにしています。 なので、ネットサーフィンをしてから戻るボタンを連打すれば 必ず最後にYahooに戻ってくるはずですよね? ですが、なぜかそうはいかず、途中に見て回ったサイトが Yahooよりも前になっています・・・ (別窓を開いたりとかはしていないです) いつも違うサイトを見に行く時は一度トップページまで戻ってから 見るという癖がありまして、どうしてもこれが気になるんです。 原因、解決方法など、わかる方がいましたらお願いします。

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

    ブラウザの「戻る」ボタンを押して前のページに戻った時に1回だけページを リロードさせたいのですが、IEでは下記のようにすれば上手く出来ました。 <script type="text/javascript"> <!-- window.onunload = function(){location.reload();} --> </script> しかしながら、上記では他のブラウザ(Firefox・Opera・Safai・Google Chrome等)では リロードされません。 全てのブラウザで上手くリロードさせる方法はないでしょうか。 宜しくお願い致します。

  • マウスホイールボタンのイベントをとるには?

    キーが押された時のイベントは、document.onkeydownを、そして、 マウスボタンが押された時は、document.onmousedownイベントで イベントを拾うことができることは知っております。 ところで、マウスホイールの上下スクロールのイベントを拾うには どのようなJavaScript(IE/NN)でコーディングすればよろしいでしょうか?

  • 「戻る」ボタンのブラウザ対応

    「戻る」ボタンに、javascriptを埋め込み、 ユーザーが来た場所へ戻るようにしています。 ソースは下記の通りです。 <a href="javascript:history.go(-1);"><img src="画像.gif" border="0"></a> IE5.5では問題なく動作しているようですが、 NN4.75では「戻る」が動作していないようです。 OSはwin95で確認しました。 NNでは対応していないのでしょうか? 教えてください、お願いします。 また、ブラウザに左右されない良い方法が ありましたら是非教えてください。

  • JavaScript でページズーム

    IE7/IE8、FireFox3.x、Safari4.x、Google Chrome、Opera,等主要ブラウザが、ページズーム機能が搭載されました。 ブラウザのズームボタンを押せば良いことですが、ページ内に目立つボタンを設置してページズームをコントロールしたいと思います。 ページズームは JavaScript でコントロール出来るのでしょうか、もしくは、JavaScript のライブラリ等が有れば、アドバイスを頂ければ幸いです。 もしかするとページズームは、ブラウザ箇々の機能になる為。JavaScript ではコントロールが出来ないのでしょうか。

  • ブラウザの更新ボタンを押した直後の忠告

    ホームページをみに来てくれた人がブラウザ設定でjavascriptを 突然無効にして更新ボタンを押したらjavascriptは無効になりますよね。 そこで更新ボタンを押した直後にnoscriptタグでJavaが有効ではありませんと別ドキュメントで忠告するにはどのような記述が必要ですか? プログラムに強い人・・回答のほうよろしくお願いします。

専門家に質問してみよう