JavaScriptを使用してページをリロードする方法


875

JavaScriptを使用してページをリロードするにはどうすればよいですか?

すべてのブラウザで機能するメソッドが必要です。

回答:


948

JavaScript 1.0

window.location.href = window.location.pathname + window.location.search + window.location.hash;
// creates a history entry

JavaScript 1.1

window.location.replace(window.location.pathname + window.location.search + window.location.hash);
// does not create a history entry

JavaScript 1.2

window.location.reload(false); 
// If we needed to pull the document from
//  the web-server again (such as where the document contents
//  change dynamically) we would pass the argument as 'true'.

82
'true'を指定すると、ページがサーバーから再ロードされます。'false'は、利用可能な場合、キャッシュからリロードします。
barro32

3
ない.reload(true)歴史に追加されますか?もしそうなら、リロードでそれを避ける方法は?
johntrepreneur 2013年

13
ここにドキュメントへのリンクがあります:developer.mozilla.org/en-US/docs/Web/API/window.location
Justin Ethier

1
これが最良の答えであり、一番上になるはずです。他の機能に関する私の問題は、サーバーのコンテンツでページを更新せず、代わりにキャッシュを使用していたため、JavaScript 1.2ソリューションが最善かつ唯一のソリューションでした。
Ryan Coolwebs 2016年

8
.reload(true)か.reload(偽)は、私のIDEとに応じて推奨されていませんgithub.com/Microsoft/TypeScript/issues/28898今.reload使用する必要があります()
danday74

389
location.reload();

詳細については、このMDNページ参照してください。

後にリフレッシュしているonclick場合は、直後にfalseを返す必要があります

location.reload();
return false;

22
違いは何であるlocation.reload()とはwindow.location.reload()
ラプター

53
@ShivanRaptor通常どれも、Webブラウザのコンテキストでは、location同じではないwindow.locationとして、windowグローバルオブジェクトです。
Lekensteyn 2013

1
return false;リンクのonclickからこれを呼び出す場合は、忘れないでください。
リミアン2018

2
ローカル変数とwindow.location.reload();同様に、読みやすさを優先して使用しlocationます。通常、名前の変数は避けますwindow
イエティ

219

ここにあるのJavaScript使用してページをリロードする535個の方法、最も簡単なビーイングはlocation = location

これらは最初の50です。

location = location
location = location.href
location = window.location
location = self.location
location = window.location.href
location = self.location.href
location = location['href']
location = window['location']
location = window['location'].href
location = window['location']['href']
location = window.location['href']
location = self['location']
location = self['location'].href
location = self['location']['href']
location = self.location['href']
location.assign(location)
location.replace(location)
window.location.assign(location)
window.location.replace(location)
self.location.assign(location)
self.location.replace(location)
location['assign'](location)
location['replace'](location)
window.location['assign'](location)
window.location['replace'](location)
window['location'].assign(location)
window['location'].replace(location)
window['location']['assign'](location)
window['location']['replace'](location)
self.location['assign'](location)
self.location['replace'](location)
self['location'].assign(location)
self['location'].replace(location)
self['location']['assign'](location)
self['location']['replace'](location)
location.href = location
location.href = location.href
location.href = window.location
location.href = self.location
location.href = window.location.href
location.href = self.location.href
location.href = location['href']
location.href = window['location']
location.href = window['location'].href
location.href = window['location']['href']
location.href = window.location['href']
location.href = self['location']
location.href = self['location'].href
location.href = self['location']['href']
location.href = self.location['href']
...

84
それは興味深いですが、今私は混乱しています
Arun Prasad ES

14
また、Javascriptの特殊性も強調しています:)
Jeremy Thille 2017年

53
場所を変更するためのさまざまな実装のほんの一部を示しているだけなので、私は個人的にこの答えを嫌います。これらの方法は、JavaScriptで関数を実行したり属性にアクセスしたりするためのさまざまな方法の組み合わせです。ページをリロードする別の方法ではありません。
Joshua Behrens 2017

42
確かに、さらに、などがある:window.window.window['window'].location = window['window'].window['window']['window']['window']['window']['window']['window']['location']
レナート・

85

このタスクは、を使用して実行できますwindow.location.reload();。これを行う方法はたくさんありますが、同じドキュメントをJavaScriptでリロードするには適切な方法だと思います。ここに説明があります

JavaScript window.locationオブジェクトを使用できます

  • 現在のページアドレス(URL)を取得する
  • ブラウザを別のページにリダイレクトする
  • 同じページをリロードする

window:JavaScriptでは、ブラウザで開いているウィンドウを表します。

location:JavaScriptでは、現在のURLに関する情報を保持します。

locationオブジェクトは、断片のようなものであるwindow物体とを介して呼び出されるwindow.locationプロパティ。

location オブジェクトには3つのメソッドがあります。

  1. assign():新しいドキュメントをロードするために使用されます
  2. reload():現在のドキュメントを再読み込みするために使用されます
  3. replace():現在のドキュメントを新しいドキュメントに置き換えるために使用されます

reload()同じドキュメントをリロードするのに役立つので、ここではを使用する必要があります。

だからのように使ってくださいwindow.location.reload();

jsfiddleのオンラインデモ

キャッシュではなくサーバーから直接ページを取得するようブラウザに要求するには、にtrueパラメータを渡しますlocation.reload()。この方法は、IE、Chrome、Firefox、Safari、Operaを含むすべての主要なブラウザーと互換性があります。


2
ああ! replace()クエリ文字列を少し変更してページをリロードする必要があったため、私が探していたソリューションであることがわかりました。
Bernard Hymmen 2015

w3schoolsから:「assign()とreplace()の違いは、replace()が現在のドキュメントのURLをドキュメント履歴から削除することです。つまり、「戻る」ボタンを使用して、元の書類。"
pasaba por aqui

54

試してください:

window.location.reload(true);

パラメータを「true」に設定すると、サーバーから新しいコピーが再ロードされます。除外すると、キャッシュからページが提供されます。

詳細については、MSDNおよびMozillaのドキュメントを参照してください


1
外部Webページwww.xyz.com/abcを更新したい場合はどうすればよいですか?
DoIt

@Dev:後で説明するように、「replace」で試す必要があります
Jean Paul AKA el_vete

@Orane:opの問い合わせを満たすためだけに多くのオプションを提供するため、私は特にこの回答の単純さと機知の両方が好きです、と述べました、この状況でも権限参照リンクを提供し、各ブラウザとして将来参照できるように感謝しますレンダリング用の独自のJSエンジンを持っている...質問は非常に一般的であり、それが何のために何をしたいかに依存する必要があると思います。他のWeb参照: " phpied.com/files/location-location/location- location.html "は、この質問に対するopを完全に満足させるかもしれません。しかし、これは私を助けました;)
Jean Paul AKA el_vete

1
これはまだ本当ですか?これらのリンクはどちらも、リロードのパラメーターについて言及していません。
リュディガーシュルツ

51

method="post"フォームの送信後など、POSTリクエストで取得したページのリロードに関する情報を探していました。

POSTデータを保持したままページをリロードするには、次を使用します。

window.location.reload();

POSTデータを破棄してページをリロード(GETリクエストを実行)するには、以下を使用します。

window.location.href = window.location.href;

うまくいけば、これは同じ情報を探している他の人を助けることができます。


POSTリクエストで取得したドキュメントの再読み込みへの参照を含む回答に感謝します。
クリストファーシュルツ

GETPOST方法の明確な区別
Hassan Baig

この答えは遠すぎました!
Greg Randall

1
window.location.href = window.location.href現在のURLにが含まれている場合、ページは再読み込みされません#。必要がなければ、ハッシュを削除することができますwindow.location.href = window.location.href.split('#')[0];
Roland Starke


37

これは私にとってはうまくいきます:

function refresh() {    
    setTimeout(function () {
        location.reload()
    }, 100);
}

http://jsfiddle.net/umerqureshi/znruyzop/


これは、サーバー側のループ状態を回避するため、私にとっては好ましい
ILMostro_7

1
更新が発生する前に表示したいメッセージがあるので、タイムアウト機能が含まれていることに特に感謝しています。賞賛!
Matt Cremeens、2016

setTimeout関数の2番目の引数として別の値を設定できますが、機能しません。リロードはすぐに発生します。解決方法は?
O.Kuz

1
@ O.Kuzはそうは思わない。値を5000msに設定すると、リロードは5秒後に発生します。参照jsfiddle.net/umerqureshi/znruyzop/446
umer

1
コードの間違いを見つける必要があります)ありがとうございます!
O.Kuz、

15

あなたが置くなら

window.location.reload(true);

そのコードが実行される理由を限定する他の条件がないページの先頭では、ページが読み込まれ、ブラウザーを閉じるまでページの再読み込みが続行されます。


さて、またはあなたが別のURLを開くまで。それはおそらく、継続的なページの(再)ロードを処理するブラウザーの機能に依存します。
adamdunson 2013年

まあそれはあなたが正しく述べたようにあなたがそれをどこに置くかによる。ここでは単に、アンカータグはページの再読み込みなどのアクションを実行するための直感的な要素ではないことを示しています。提案:onclickイベントを実行するために、ターゲットとして別のUIオブジェクトに依存しています。たとえば、cssで装飾した場合など、divをターゲットにしてページが読み込まれた後、jQueryでこれを行うことができます。これは、何をしたいかによって異なります。そのコンテキストでは、入力タイプのボタンではなくボタンです。バックエンドアプリに引数を渡すことを計画していない場合は、より適切なようです。
Jean Paul AKA el_vete

IE:<button onclick = "javascript:window.location.reload(true);"
Jean Paul AKA el_vete

11
location.href = location.href;

5
最新のブラウザーはこれを無視します。これは、hrefが変更されないため、リロードする必要がないためです。これは、古いブラウザのリロードなしのフェイルオーバーとしてのみ使用する必要があります:(location.reload?location.reload():location.href = location.href)
Radek Pech

@RadekPechどの古いブラウザにはありませんlocation.reload()か?
Matthias

8

簡単かつシンプルにするには、を使用しますlocation.reload()location.reload(true)サーバーから何かを取得したい場合にも使用できます。


8

ボタンを使用するか、単に "a"(アンカー)タグ内に配置します。

<input type="button" value="RELOAD" onclick="location.reload();" />

他のニーズのためにこれらを試してください:

Location Objects has three methods --

assign() Used to load a new document
reload() Used to reloads the current document.
replace() Used to replace the current document with a new one

1
興味深い... <button> </ button>はどうですか?同じように機能しますか?
Jean Paul AKA el_vete

1
それは魅力のように働きました!下記:)おかげで私の答えを参照してください
ジャンポールAKA el_vete


4

20秒後のページの自動再読み込み。

<script>
    window.onload = function() {
        setTimeout(function () {
            location.reload()
        }, 20000);
     };
</script>

4

この投稿は、提案された回答をページに再読み込みするだけでなく、ボタンにjQuery UIアイコンを配置するというアイデアを与えるのにも非常に役立ちました。

<button style="display:block; vertical-align:middle; height:2.82em;"
        title="Cargar nuevamente el código fuente sin darle un [Enter] a la dirección en la barra de direcciones"
        class="ui-state-active ui-corner-all ui-priority-primary" 
        onclick="javascript:window.location.reload(true);">
    <span style="display:inline-block;" class="ui-icon ui-icon-refresh"></span>
    &nbsp;[<b>CARGAR NUEVAMENTE</b>]&nbsp;
</button>

これをプロジェクトに含めるとどのように表示されるかを編集する

2016-07-02

申し訳ありませんが、これはjQuery UI、Themeroller、アイコンフレームワーク、jQueryタブなどのメソッドを使用することを意味する個人的なプロジェクトですが、スペイン語です;)


@Peter Mortensen:編集のおかげで、プロジェクトのプロトタイプは大学向けに作成されたので、スクリーンキャプチャを添付してスペイン語にする必要がありました..申し訳ありません。もちろん、jQuery UI関連のコアが必要でしたそれはのように一緒にブレンドにする依存関係:---例えばThemeRollerのウィジェットjqueryui.com/themeroller 、とのようなプラグイン: plugins.jquery.com/qTip2datatables.net .. jQueryライブラリ自体、など。しかし、上記の応答の一部に基づいてアクションが実行されました:onclick = "javascript:window.location.reload(true);">!
Jean Paul AKA el_vete 2018

3

これはうまくいくはずです:

window.location.href = window.location.href.split( '#' )[0];

または

var x = window.location.href;
x = x.split( '#' );
window.location.href = x[0];

私は以下の理由でこれを好みます:

  • #の後の部分を削除し、ページを含むコンテンツを再読み込みしないブラウザーでページが再読み込みされるようにします。
  • 最近フォームを送信した場合、最後のコンテンツを再投稿するかどうかは尋ねられません。
  • 最新のブラウザでも動作するはずです。Lasted FirefoxおよびChromeでテスト済み。

または、このタスクには最新の公式方法を使用できます

window.location.reload()

3

このボタンを使用してページを更新します

デモ

<input type="button" value="Reload Page" onClick="document.location.reload(true)">

2

reload()メソッドは、現在のドキュメントを再読み込みするために使用されます。

reload()メソッドは、ブラウザの再読み込みボタンと同じように機能します。

デフォルトでは、reload()メソッドはキャッシュからページをリロードしますが、forceGetパラメーターをtrueに設定することで、サーバーからページを強制的にリロードできます:location.reload(true)。

        location.reload();

-3

あなたは単に使うことができます

window.location=document.URL

document.URLは現在のページのURLを取得し、window.locationはそれを再読み込みします。


2
最新のブラウザーはこれを無視します。これは、hrefが変更されないため、リロードする必要がないためです。これは、リロードなしの古いブラウザーのフェイルオーバーとしてのみ使用する必要があります:(location.reload?location.reload():location = document.URL)
Radek Pech
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.