Cómo recargar una página usando JavaScript

877

¿Cómo puedo recargar la página usando JavaScript?

Necesito un método que funcione en todos los navegadores.

Resh
fuente

Respuestas:

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'.
gianebao
fuente
82
'verdadero' obligará a la página a recargarse desde el servidor. 'falso' se volverá a cargar desde el caché, si está disponible.
barro32
3
¿Se .reload(true)agrega al historial? Si es así, ¿cómo evitar eso con la recarga?
johntrepreneur
13
Aquí hay un enlace a los documentos: developer.mozilla.org/en-US/docs/Web/API/window.location
Justin Ethier
1
Esta es la mejor respuesta y debe estar en la cima. Mi problema con las otras funciones es que no actualizaban la página con el contenido del servidor y usaban el caché, por lo que la solución JavaScript 1.2 era la mejor y la única solución para mí.
Ryan Coolwebs
8
.reload (true) o .reload (false) está en desuso de acuerdo con mi IDE y github.com/Microsoft/TypeScript/issues/28898 - ahora debería usar .reload ()
danday74
391
location.reload();

Vea esta página de MDN para más información.

Si está actualizando después de un, onclickentonces deberá devolver falso directamente después de

location.reload();
return false;
Lekensteyn
fuente
23
¿Cuál es la diferencia entre location.reload()y window.location.reload()?
Raptor
54
Por lo general, ninguno @ShivanRaptor, en el contexto de los navegadores web, locationes lo mismo que window.locationlo windowes el objeto global.
Lekensteyn
1
no olvides return false;llamarlo desde un clic en un enlace.
Rimian
2
Prefiero usar window.location.reload();para facilitar la lectura, ya que locationpodría ser una variable local, mientras que generalmente evitaría las variables del nombre window.
Yeti
219

Aquí hay 535 formas de volver a cargar la página usando JavaScript , siendo la más fácil location = location.

Estos son los primeros 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']
...
Jeremy Thille
fuente
84
eso es interesante, pero ahora estoy confundido
Arun Prasad ES
14
También destaca la peculiaridad de Javascript :)
Jeremy Thille
53
Personalmente no me gusta esta respuesta, ya que solo muestra un puñado de diferentes implementaciones para cambiar la ubicación. Estas formas son permutaciones de diferentes formas de ejecutar una función o acceder a un atributo en javascript. NO diferentes formas de recargar una página.
Joshua Behrens
42
Seguro que hay aún más, como:window.window.window['window'].location = window['window'].window['window']['window']['window']['window']['window']['window']['location']
Renato
85

Puede realizar esta tarea usando window.location.reload();. Como hay muchas formas de hacerlo, creo que es la forma adecuada de volver a cargar el mismo documento con JavaScript. Aquí esta la explicación

JavaScript window.locationSe puede usar el objeto

  • para obtener la dirección de la página actual (URL)
  • para redirigir el navegador a otra página
  • para recargar la misma página

window: en JavaScript representa una ventana abierta en un navegador.

location: en JavaScript contiene información sobre la URL actual.

El locationobjeto es como un fragmento del windowobjeto y se llama a través de la window.locationpropiedad.

location El objeto tiene tres métodos:

  1. assign(): se utiliza para cargar un nuevo documento
  2. reload(): se utiliza para recargar el documento actual
  3. replace(): se utiliza para reemplazar el documento actual por uno nuevo

Así que aquí tenemos que usar reload(), porque puede ayudarnos a recargar el mismo documento.

Así que úsalo como window.location.reload();.

Demostración en línea en jsfiddle

Para pedirle a su navegador que recupere la página directamente del servidor, no del caché, puede pasar un trueparámetro a location.reload(). Este método es compatible con todos los principales navegadores, incluidos IE, Chrome, Firefox, Safari, Opera.

Nikhil Agrawal
fuente
2
Ah ja! replace()resultó ser la solución que estaba buscando porque necesitaba volver a cargar mi página con un ligero cambio en la cadena de consulta.
Bernard Hymmen 01 de
De w3schools: "La diferencia entre asignar () y reemplazar (), es que reemplazar () elimina la URL del documento actual del historial del documento, lo que significa que no es posible usar el botón" atrás "para navegar de regreso al documento original."
pasaba por aqui
54

Tratar:

window.location.reload(true);

El parámetro establecido en 'verdadero' vuelve a cargar una copia nueva del servidor. Dejarlo fuera servirá la página desde el caché.

Se puede encontrar más información en MSDN y en la documentación de Mozilla .

Orane
fuente
1
¿Qué sucede si deseo actualizar una página web externa www.xyz.com/abc?
DoIt
@Dev: Deberías intentar con "reemplazar" como se menciona más adelante
Jean Paul AKA el_vete
@Orane: Me gusta la simplicidad y el ingenio de esta respuesta en particular, ya que ofrece muchas opciones solo para satisfacer la consulta del operador, dicho esto, gracias por proporcionar un enlace de referencia de autoridad en esta situación también, para referencia futura como cada navegador tienen su propio motor JS para renderizar ... Creo que la pregunta es muy general y que debería depender de para qué quieres hacer eso, porque de lo contrario referencia web: " phpied.com/files/location-location/location- location.html "podría satisfacer completamente la operación para esta pregunta. Sin embargo, este me ayudó;)
Jean Paul AKA el_vete
1
¿Sigue siendo cierto? Ambos enlaces no mencionan ningún parámetro para recargar.
Rüdiger Schulz
51

Estaba buscando información sobre las recargas en páginas recuperadas con solicitudes POST, como después de enviar un method="post"formulario.

Para volver a cargar la página manteniendo los datos POST, use:

window.location.reload();

Para volver a cargar la página descartando los datos POST (realizar una solicitud GET), use:

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

Esperemos que esto pueda ayudar a otros que buscan la misma información.

Starwarswii
fuente
Gracias por la respuesta, incluida una referencia a la recarga de un documento recuperado con una POSTsolicitud.
Christopher Schultz
Buena distinción entre GETy POSTmétodos
Hassan Baig
¡Esta respuesta estaba demasiado lejos!
Greg Randall
1
window.location.href = window.location.hrefno vuelve a cargar la página si la url actual contiene a #. Puede eliminar el hash si no lo necesita window.location.href = window.location.href.split('#')[0];.
Roland Starke
41

Para recargar una página usando JavaScript, use:

window.location.reload();
Girina Ninama
fuente
37

Esto funciona para mi:

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

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

umer
fuente
Esto, para mí, es preferible, ya que evita una condición de bucle en el lado del servidor
ILMostro_7
1
Aprecio especialmente la inclusión de la función de tiempo de espera porque tengo un mensaje que todavía quiero ver antes de que ocurra la actualización. ¡Prestigio!
Matt Cremeens
puede establecer diferentes valores como un segundo argumento para la función setTimeout pero no funcionará, la recarga se producirá de inmediato, ¿cómo resolverla?
O.Kuz
1
@ O.Kuz no lo creo. Digamos que si establece el valor en 5000 ms, la recarga se producirá después de 5 segundos. ver jsfiddle.net/umerqureshi/znruyzop/446
umer
1
Necesito encontrar un error en mi código) ¡Muchas gracias!
O.Kuz
15

Si pones

window.location.reload(true);

al comienzo de su página sin ninguna otra condición que califique por qué se ejecuta ese código, la página se cargará y luego continuará recargándose hasta que cierre su navegador.

Joe Devlin
fuente
Bueno, o hasta que abras otra URL. Probablemente depende de la capacidad del navegador para manejar (re) cargas continuas de página.
adamdunson
bueno, eso depende de dónde lo coloque como lo ha indicado correctamente. Nos estamos refiriendo simplemente a que tal vez una etiqueta de anclaje no sea el elemento intuitivo para ejecutar una acción, como volver a cargar la página. Sugerencia: Confiamos en otro objeto de IU como objetivo para hacer un evento onclick. Puede hacer esto en jQuery después de cargar la página apuntando a un div, por ejemplo, si la decora con css. Depende de lo que quiera hacer con ella. En ese contexto, un botón en lugar de un botón de tipo de entrada. Si no estamos planeando pasar un argumento a la aplicación de fondo, parece más apropiado.
Jean Paul AKA el_vete
IE: <button onclick = "javascript: window.location.reload (true);"
Jean Paul AKA el_vete
11
location.href = location.href;
guilin 桂林
fuente
55
Los navegadores modernos ignoran esto porque el href no cambia, por lo que no es necesario volver a cargarlo. Debe usar esto solo como conmutación por error para navegadores antiguos sin recargar: (location.reload? Location.reload (): location.href = location.href)
Radek Pech
@RadekPech ¿Qué navegadores antiguos no tienen location.reload()?
Matthias
8

Para hacerlo fácil y simple, use location.reload(). También puedes usarlo location.reload(true)si quieres tomar algo del servidor.

Joshua
fuente
8

Usando un botón o simplemente colóquelo dentro de una etiqueta "a" (ancla):

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

Pruebe estos para otras necesidades:

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
Arun Prasad ES
fuente
1
interesante ... ¿qué tal <button> </button>? funciona igual, ¿verdad?
Jean Paul AKA el_vete
1
¡Funcionó como un encanto! Vea mi respuesta a continuación :) Gracias
Jean Paul AKA el_vete
5

Más corto ( más )

history.go()
Kamil Kiełczewski
fuente
4

Página de recarga automática después de 20 segundos.

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

Gracias, esta publicación fue muy útil, no solo para volver a cargar la página con la respuesta sugerida, sino también para darme la idea de colocar un icono de jQuery UI en un botón:

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

Editado para mostrar cómo se ve esto cuando se incluye en un proyecto

2016-07-02

Mis disculpas ya que este es un proyecto personal que implica el uso de jQuery UI, Themeroller, Framework de iconos, métodos como las pestañas jQuery, pero está en español;)

Jean Paul AKA el_vete
fuente
@ Peter Mortensen: Gracias por la edición, ese prototipo del proyecto se realizó para la universidad, por lo que tenía que estar en español en las capturas de pantalla adjuntas ... Mis disculpas por eso ... Por supuesto, era necesario tener un núcleo relacionado con jQuery UI dependencias para que se mezclen como: --- por ejemplo, el widget ThemeRoller jqueryui.com/themeroller , y complementos como: plugins.jquery.com/qTip2 , datatables.net .. la biblioteca jQuery en sí, etc. pero La acción se realizó en función de algunas de las respuestas anteriores: onclick = "javascript: window.location.reload (true);">!
Jean Paul AKA el_vete
3

Esto debería funcionar:

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

o

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

Prefiero esto por las siguientes razones:

  • Elimina la parte después del #, asegurando que la página se vuelva a cargar en los navegadores que no volverán a cargar el contenido que la tiene.
  • No le pregunta si desea volver a publicar el último contenido si recientemente envió un formulario.
  • Debería funcionar incluso en los navegadores más recientes. Probado en Firefox y Chrome durados.

Alternativamente, puede usar el método oficial más reciente para esta tarea

window.location.reload()
Ayoola Falola
fuente
3

Use este botón para actualizar la página

MANIFESTACIÓN

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

El método reload () se usa para recargar el documento actual.

El método reload () hace lo mismo que el botón reload en su navegador.

De forma predeterminada, el método reload () vuelve a cargar la página desde el caché, pero puede forzarlo a volver a cargar la página desde el servidor estableciendo el parámetro forceGet en true: location.reload (true).

        location.reload();
GeniusGeek
fuente
-3

Simplemente puedes usar

window.location=document.URL

donde document.URL obtiene la URL de la página actual y window.location la recarga.

Sanu Uthaiah Bollera
fuente
2
Los navegadores modernos ignoran esto porque el href no cambia, por lo que no es necesario volver a cargarlo. Debe usar esto solo como conmutación por error para navegadores antiguos sin recargar: (location.reload? Location.reload (): location = document.URL)
Radek Pech