Come ricaricare una pagina usando JavaScript


877

Come posso ricaricare la pagina usando JavaScript?

Ho bisogno di un metodo che funzioni in tutti i browser.

Risposte:


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' forzerà il ricaricamento della pagina dal server. 'false' verrà ricaricato dalla cache, se disponibile.
barro32,

3
Viene .reload(true)aggiunto alla cronologia? In tal caso, come evitarlo con la ricarica?
johntrepreneur


1
Questa è la risposta migliore e dovrebbe essere al top. Il mio problema con le altre funzioni è che non stavano aggiornando la pagina con il contenuto del server e usando invece la cache, quindi la soluzione JavaScript 1.2 era la migliore e unica soluzione per me.
Ryan Coolwebs,

8
.reload (true) o .reload (false) è obsoleto in base al mio IDE e github.com/Microsoft/TypeScript/issues/28898 - ora dovrebbe utilizzare .reload ()
danday74

391
location.reload();

Vedi questa pagina MDN per ulteriori informazioni.

Se stai aggiornando dopo un onclick, dovrai restituire false direttamente dopo

location.reload();
return false;

23
Qual'è la differenza tra location.reload()e window.location.reload()?
Raptor il

54
@ShivanRaptor Di solito nessuno, in un contesto browser web, locationè lo stesso di window.locationcome windowè l'oggetto globale.
Lekensteyn,

1
non dimenticare di return false;chiamare questo da un onclick in un collegamento.
Rimian,

2
Preferisco usare window.location.reload();per la leggibilità, in quanto locationpotrebbe essere una variabile locale, mentre di solito eviteresti le variabili del nome window.
Yeti

219

Ecco 535 modi per ricaricare la pagina utilizzando JavaScript , l'essere più semplice location = location.

Questi sono i primi 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
è interessante, ma ora sono confuso
Arun Prasad ES

14
Evidenzia anche la peculiarità di Javascript :)
Jeremy Thille

53
Personalmente non mi piace questa risposta in quanto mostra solo una manciata di diverse implementazioni per cambiare la posizione. Questi modi sono permutazioni di modi diversi per eseguire una funzione o accedere a un attributo in JavaScript. NON modi diversi per ricaricare una pagina.
Joshua Behrens,

42
Certo ce ne sono ancora di più, come:window.window.window['window'].location = window['window'].window['window']['window']['window']['window']['window']['window']['location']
Renato

85

È possibile eseguire questa attività utilizzando window.location.reload();. Dato che ci sono molti modi per farlo, ma penso che sia il modo appropriato per ricaricare lo stesso documento con JavaScript. Ecco la spiegazione

È window.locationpossibile utilizzare l'oggetto JavaScript

  • per ottenere l'indirizzo della pagina corrente (URL)
  • per reindirizzare il browser a un'altra pagina
  • per ricaricare la stessa pagina

window: in JavaScript rappresenta una finestra aperta in un browser.

location: in JavaScript contiene informazioni sull'URL corrente.

L' locationoggetto è come un frammento windowdell'oggetto e viene richiamato attraverso la window.locationproprietà.

location L'oggetto ha tre metodi:

  1. assign(): usato per caricare un nuovo documento
  2. reload(): utilizzato per ricaricare il documento corrente
  3. replace(): usato per sostituire il documento corrente con uno nuovo

Quindi qui dobbiamo usare reload(), perché può aiutarci a ricaricare lo stesso documento.

Quindi usalo come window.location.reload();.

Demo online su jsfiddle

Per chiedere al browser di recuperare la pagina direttamente dal server e non dalla cache, è possibile passare un trueparametro a location.reload(). Questo metodo è compatibile con tutti i principali browser, inclusi IE, Chrome, Firefox, Safari, Opera.


2
Ah ah! replace()si è rivelata la soluzione che stavo cercando perché avevo bisogno di ricaricare la mia pagina con una leggera modifica nella stringa di query.
Bernard Hymmen,

Da w3schools: "La differenza tra assegnato () e replace (), è che replace () rimuove l'URL del documento corrente dalla cronologia del documento, il che significa che non è possibile utilizzare il pulsante" indietro "per tornare indietro al documento originale."
pasaba por aqui,

54

Provare:

window.location.reload(true);

Il parametro impostato su 'true' ricarica una nuova copia dal server. Lasciandolo fuori servirà la pagina dalla cache.

Ulteriori informazioni sono disponibili su MSDN e nella documentazione di Mozilla .


1
cosa succede se voglio aggiornare una pagina Web esterna www.xyz.com/abc?
DoIt,

@Dev: dovresti provare a "sostituire" come accennato in seguito
Jean Paul AKA el_vete

@Orane: mi piace sia la semplicità che l'intraprendenza di questa risposta, in particolare per offrire molte opzioni solo per soddisfare la richiesta dell'op, che ha detto, grazie per aver fornito un link di riferimento all'autorità anche in questa situazione, per riferimento futuro come ogni browser hanno il proprio motore JS per il rendering ... Penso che la domanda sia molto generica e che dovrebbe dipendere da cosa vuoi fare, perché altrimenti riferimento web: " phpied.com/files/location-location/location- location.html "potrebbe soddisfare completamente l'op per questa domanda. Tuttavia, questo mi ha aiutato;)
Jean Paul AKA el_vete

1
È ancora vero? Entrambi questi collegamenti non menzionano alcun parametro per ricaricare.
Rüdiger Schulz,

51

Stavo cercando alcune informazioni relative ai ricarichi nelle pagine recuperate con richieste POST, ad esempio dopo aver inviato un method="post"modulo.

Per ricaricare la pagina mantenendo i dati POST, utilizzare:

window.location.reload();

Per ricaricare la pagina eliminando i dati POST (eseguire una richiesta GET), utilizzare:

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

Speriamo che questo possa aiutare gli altri a cercare le stesse informazioni.


Grazie per la risposta, incluso un riferimento alla ricarica di un documento recuperato con una POSTrichiesta.
Christopher Schultz,

Buona distinzione tra GETe POSTmetodi
Hassan Baig,

Questa risposta era troppo in basso!
Greg Randall,

1
window.location.href = window.location.hrefnon ricarica la pagina se l'URL corrente contiene a #. Potresti rimuovere l'hash se non ti serve window.location.href = window.location.href.split('#')[0];.
Roland Starke,

41

Per ricaricare una pagina utilizzando JavaScript, utilizzare:

window.location.reload();

37

Questo funziona per me:

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

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


Questo, per me, è preferibile, poiché evita una condizione di loop sul lato server
ILMostro_7

1
Apprezzo in particolare l'inclusione della funzione di timeout perché ho ancora un messaggio che voglio ancora vedere prima dell'aggiornamento. Complimenti!
Matt Cremeens,

puoi impostare valori diversi come secondo argomento della funzione setTimeout ma non funzionerà, la ricarica avverrà immediatamente, come risolverlo?
O. Kuz,

1
@ O.Kuz non la penso così. diciamo che se si imposta il valore su 5000ms, la ricarica avverrà dopo 5 secondi. vedi jsfiddle.net/umerqureshi/znruyzop/446
umer

1
Devo trovare un errore nel mio codice) Grazie mille!
O. Kuz,

15

Se metti

window.location.reload(true);

all'inizio della pagina senza altre condizioni che qualificano il motivo per cui quel codice viene eseguito, la pagina verrà caricata e quindi continuerà a ricaricarsi fino alla chiusura del browser.


Bene, o fino a quando non apri un altro URL. Probabilmente dipende dalla capacità del browser di gestire i (ri) caricamenti di pagine continue.
Adamdunson,

bene dipende da dove lo metti come hai affermato correttamente. Qui ci riferiamo semplicemente al fatto che forse un tag anchor non è l'elemento intuitivo per eseguire un'azione come ricaricare la pagina. Suggerimento: per fare un evento onclick facciamo affidamento su un altro oggetto dell'interfaccia utente come destinazione. Puoi farlo in jQuery dopo che la pagina è stata caricata indirizzando un div, ad esempio se lo decori con css .. Dipende da cosa vuoi fare con esso. In quel contesto un pulsante piuttosto che un pulsante di tipo input. Se non stiamo pianificando di passare un argomento per il back-end dell'app, sembra più appropriato.
Jean Paul AKA el_vete,

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

11
location.href = location.href;

5
I browser moderni lo ignorano perché l'href non cambia, quindi non è necessario ricaricarlo. Dovresti usarlo solo come failover per i vecchi browser senza ricaricare: (location.reload? Location.reload (): location.href = location.href)
Radek Pech,

@RadekPech Quali browser meno recenti non hanno location.reload()?
Matthias,

8

Per renderlo facile e semplice, utilizzare location.reload(). Puoi anche usarlo location.reload(true)se vuoi prendere qualcosa dal server.


8

Usando un pulsante o semplicemente inserendolo in un tag "a" (ancora):

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

Prova questi per altre esigenze:

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
interessante ... che ne dici di <button> </button>? funziona allo stesso modo, vero?
Jean Paul AKA el_vete,

1
Funzionava come un fascino! Vedi la mia risposta di seguito :) Grazie
Jean Paul AKA el_vete,


4

Pagina di ricarica automatica dopo 20 secondi.

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

4

Grazie, questo post è stato molto utile, non solo per ricaricare la pagina con la risposta suggerita, ma anche per darmi l'idea di posizionare un'icona dell'interfaccia utente jQuery su un pulsante:

<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>

Modificato per mostrare come appare quando incluso in un progetto

2016/07/02

Mi scuso perché questo è un progetto personale che implica l'utilizzo dell'interfaccia utente di jQuery, di Themeroller, del framework Icons, di metodi come le schede jQuery, ma è in spagnolo;)


@Peter Mortensen: Grazie per la modifica, quel prototipo del progetto è stato fatto per il college, quindi doveva essere in spagnolo alle screencaptures allegate .. le mie scuse per quello ... Certo, c'era la necessità di avere un nucleo correlato all'interfaccia utente di jQuery dipendenze per farlo fondere insieme come: --- ad esempio il widget ThemeRoller jqueryui.com/themeroller e plugin come: plugins.jquery.com/qTip2 , datatables.net .. la libreria jQuery stessa, ecc. ma il l'azione è stata fatta in base ad alcune delle risposte precedenti: onclick = "javascript: window.location.reload (true);">!
Jean Paul AKA el_vete il

3

Questo dovrebbe funzionare:

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

o

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

Preferisco questo per i seguenti motivi:

  • Rimuove la parte dopo il #, assicurando che la pagina venga ricaricata sui browser che non ricaricano il contenuto.
  • Non ti viene chiesto se desideri ripubblicare l'ultimo contenuto se di recente hai inviato un modulo.
  • Dovrebbe funzionare anche sui browser più recenti. Testato su Firefox e Chrome durati.

In alternativa, è possibile utilizzare il metodo ufficiale più recente per questa attività

window.location.reload()

3

Utilizzare questo pulsante per aggiornare la pagina

DEMO

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

2

Il metodo reload () viene utilizzato per ricaricare il documento corrente.

Il metodo reload () fa lo stesso del pulsante ricaricare nel tuo browser.

Per impostazione predefinita, il metodo reload () ricarica la pagina dalla cache, ma è possibile forzarlo a ricaricare la pagina dal server impostando il parametro forceGet su true: location.reload (true).

        location.reload();

-3

Puoi semplicemente usare

window.location=document.URL

dove document.URL ottiene l'URL della pagina corrente e window.location lo ricarica.


2
I browser moderni lo ignorano perché l'href non cambia, quindi non è necessario ricaricarlo. Dovresti usarlo solo come failover per i vecchi browser senza ricaricare: (location.reload? Location.reload (): location = document.URL)
Radek Pech,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.