• 締切済み

location.reload() について

JavaScriptでページAからページBに飛ばした後、ユーザーがブラウザの戻りボタンを押したとき、ページAがキャッシュから表示されるのでなくて新たにロードされるように<body onload="location.reload()"> としましたが、新たにロードされているように思えません。 この使い方は間違っているでしょうか? papashiro

みんなの回答

回答No.2

一部のブラウザは、キャッシュから表示した場合に<body onload="">やJavaScriptのwindow.onload=function;というのを呼び出しません。 それに対応するには、<body>の終了タグの直前で直接呼び出すのがたぶん常套手段だと思います。 Googleのアクセス解析スクリプトなどでもこの方法が使われています。 <script type="text/javascript"> location.reload(); </script> </body> > ANo.1お礼 > 実際にページをロードしているのではないらしく、無限ループはないです。 質問者さんの書き方ではlocation.reload()が実行されていないから無限ループしていないだけです。 location.reload()を実行するように書き直せば、無限ループするようになります。

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

オンロードするたびに、リロードすると無限ループしませんか?

papashiro
質問者

お礼

理論的に考えると無限ループしてしまいそうですが、戻りボタンを押したらキャッシュから表示しているようで、実際にページをロードしているのではないらしく、無限ループはないです。

関連するQ&A

  • リロード

    すいません。私JavaScriptはまったくの素人です。 あるページを5分ごとにリロードさせたくて、 <script language="JavaScript"> <!-- function reload_me() { document.location.reload(); setTimeout("reload_me()",300000); } //--> </script> <BODY onLoad="reload_me()"> と書いたところ、ロードしてくると同時に次のロードが始まってしまい、 300000という時間が全くきいてないような感じです。 (間髪を入れず無限にリロードが続いている状態) <body>のonLoadに書いてはいけないのでしょうか? それとも書き方がよくないのでしょうか? よろしくお願いします。

  • IEにて、reloadすると

    IEにて、reloadすると再試行というダイヤログが表示される METHOD=POSTにて、表示したページをlocation.reloadすると「再試行」というダイヤログが表示される場合と表示されない場合があります。 そこで、METHOD=GETにて、表示したページをlocation.reloadしても「再試行」というダイヤログが表示されます どのようにしたら、回避できるのでしょうか? また、GETでもダイアログは表示されるのでしょうか? よろしくお願いします

  • location.replaceについて

    親ページから子ページを表示います。 ※JavaScriptのwindow.openで子ページを開いています。 子ページにはテキストボックス等を配置していて項目を入力したら[閉じる]ボタンを押下して子ページを閉じて子ページで入力された値で親ページを再表示して反映させていますがここで1つ問題が発生してしまいました。 ※子ページの[閉じる]ボタンにはonClickでJavaScriptを設定しています。 JavaScriptの内容は下記の通りです。 function closeScript(){   window.opener.location.reload();   window.close(); } 押下すると「再試行」のダイアログが表示されてしまって・・・ ネットで検索して調べてみたら「再試行」のダイアログの制御はできないとの事でした。 再度、ネットで調べていたら下記のような記述がありました。   location.replace(location.href); 上記のJavaScriptを下記のように変更して子ページの[閉じる]ボタンを押下してみたら「再試行」のダイアログが表示されず、子ページを閉じる事が出来ました。 しかし、親ページは何も反応がないような・・・ そこで皆さんに質問があります。 「location.replace(location.href);」が何をやっているのかをネットで調べてみましたが・・・ 「location.replace」・・・「指定したページへ移動する」との事でした。 「location.href」・・・現在表示しているページのアドレス(URL)を示す文字列です。 上記のスクリプトは何を行っているのでしょうか。実際に動かしてもうんともすんとも言わないので・・・ くだらない質問で申し訳ありませんがわかりやすく教えていただけませんでしょうか。 宜しくお願いします。

  • 1回だけリロードしたい

    開いたときに1度だけリロードさせたいのですが、たのページを参考に <script language="javascript"> <!-- if ( location.search.indexOf("1") == -1 ) { setTimeout("_reload()",1000); } function _reload() { location.href = location.href + "?1"; } //--> </script> を入れてみたのですが、リロードはされるものの、いわゆるブラウザの「更新」ボタンとは違うらしく、POSTで送られてきたデータを破棄した状態でリロードされるため、データの取得ができず困っています。 データを保持したままのリロード、つまりブラウザの「更新」ボタンのようなリロードを1度だけさせるにはどうしたらよいか教えてください。

  • PHPのみでjavascriptと同じ動きができないでしょうか。

    PHPのみでjavascriptと同じ動きができないでしょうか。 やりたいことは以下の内容です。 1.メインページ(A) のリンクから サブウィンドウ(B) を別窓で開く。 2.サブウィンドウ(B) で、フォーム処理(修正登録)する。 3.サブウィンドウ(B) を閉じたら、メインページ(A) を更新する。 javascriptだと閉じるボタンに window.opener.location.reload(); とかでできると思うのですが これをphpのみで実装したいのです。 phpのみでjavascriptと同じことはできないでしょうか。

    • ベストアンサー
    • PHP
  • javascript の locationメソッド

    Javascript で、子(サブ)ウィンドを使っています 子ウィンドを開いて、とある処理を終了後に親ウィンドに指定のURLを表示させて子ウィンドを閉じる、という処理をしたいと思っています。 まず、親ウィンドにURLを渡すところはうまく動きます。 そのページはPHPで作られたページで、できており子ウィンドの処理でセッションに保存されたセッション変数を読み込んで動きます。 ページは遷移するのですが新しいセッション変数が読み込まれません。 ページをリロードすれば動作するので、子ウィンドを閉じる前に親ウィンドを再読込させればよいかな?と思ってreloadを入れてみました。 すると、リロードはしているようなのですが、今度は渡したURLに遷移しなくなってしまいました。 window.opener.location.replace(URL); window.opener.location.reload('true'); window.close(); このような処理はどうすればよろしいでしょうか? それとも諦めるしかありませんか? また、過去に同様な質問があるようでしたら、そのurlを教えていただけると幸いです。 見つけたのですが、探しきれませんでした。

  • location.hrefはブラウザごとに異なる?

    phpなどで動的ページでhtmlを出力しています。 一覧で複数ジャンルを表示させているのですが、 静的ページなら<a name="xx">スクロール先</a>を使って 該当ジャンルまでスクロールさせて表示できますが、 動的ページのため、javascriptを用いてIEでは動作確認できましたが FireFoxやSafariでは、location.href="#jmp";では<a name="jmp"></a>に 移動しませんでした。 すべてのブラウザで同じ動作をさせる方法はありますか? FireFox, Safari個別の方法でも構いません。

  • location.replaceでの移動

    以下事象につきまして、原因、および対処法をご存知な方が いらっしゃいましたらご教授願います。 「location.replace」メソッドを使用し、履歴を残さず ページを移動したいと考えております。 【サンプルコード】 【test.html】 <html> <body> <a href="http://hogehoge.com/sample.html">テスト</a> </body> </html> 【sample.html】 <html> <body> <script type="text/javascript"> <!-- top.location.replace("http://hogehoge/test2.html"); //--></script> </body> </html> 【test2.html】(1) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body></body> </html> 【test2.html】(2) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> </body> </html> 事象として、test.htmlよりsample.htmlを経由して、【test2.html】(1)へ移動した場合 ブラウザの「戻る」ボタンをクリックして、test.htmlに戻れます。 しかし、test.htmlよりsample.htmlを経由して、【test2.html】(2)へ移動した場合 ブラウザの「戻る」ボタンをクリックしても、test.htmlに戻れなくなります。 そこで、ご教授いただきたいのですが・・・ 1.移動先の<meta>タグ中のcharsetの違いでなぜこのような違いが生じるか   ご存知な方がいらっしゃれば、原因につきましてご教授願います。 2.可能であれば、【test2.html】(2)の内容は変更せずに、   【test2.html】(2)に移動しても、戻るボタンをクリックしてtest.htmlに戻れるよう   sample.html側で対応をしたいと考えておりますが、対応方法につきまして   ご教授願えないでしょうか? なお、事象が確認されたクライアントマシンはWinXP、ブラウザはIE6.0(SP2)になります。

  • javascriptで、別のフレームをリロード

    下記のように、<A>タグ内だけでテキストを押すとページがリロードするようにしています。 <a href="javascript:location.reload();">再読み込み</a> フレームを分けた際、 リロードボタンを name="A"フレームに置き、 name="B"フレームを更新させたい場合、 どのように書き直せば良いのでしょうか。 すみません、簡単なことなのかもしれませんが、javascriptが不慣れで、検索してもわからなかったため、ご質問させていただきました。 何卒宜しくお願い致します。

  • 別フレームを更新したいです。

    この度PHP,Javascript,htmlを使用し、データベースを作成しています。 左右にフレームを分けて作成しています。 左がindex、右がmainという具合に… 左のindexのリンクをJavascriptで作成し、右のmainをページ移動させるという具合です。 左部(index)記述コード window.open('hoge.heml','mail') しかし左のindexのリンクを押しても右のmainが古いページに飛んでしまい splが更新されずに困っています。 F5を押せば更新され新しいデータが表示されますが、利便性が悪い為 リンクでページが飛んだ瞬間に更新もされるようにしたいです。 お手数ですがよろしくお願い致します。 ちなみに下記記述を試してみたところ永遠にロードを繰り返してしまいます… 右部(main)記述コード <select>location.reload</select> <body onload="parent.frames['main'].location.reload()"> あと下記記述の場合には5秒ごとにリロードされ、ユーザーの記入欄が クリアされてしまうので都合が悪いです。 <meta http-equiv="refresh" content="5">

専門家に質問してみよう