2009-10-08 23 views
8

Tengo una petición sencilla de actualizar una página utilizando un código Javascript a continuación:Forzar una actualización de la página utilizando Javascript en Firefox

function tb_closeRefresh() { 
    window.location.reload(true); 
} 

Esto funciona bien en IE, pero Firefox sólo se pone la versión en caché y necesita que el usuario presione F5 para obtener la última versión de la página.

He añadido la etiqueta meta:

<meta http-equiv="Pragma" content="no-cache"> 

Pero esto no ayuda.

¿Alguna idea ???

Respuesta

11

que se podría llamar la misma página, pero deje que parezca que es otro página cambiando la cadena de consulta:

window.location.href = "index.html" + "?" + Date.parse(new Date()); 

Esto funciona para todos los navegadores. Puede mejorarlo extrayendo la página actual de location.href.

Editar:

Si ya tiene una cadena de consulta existentes que tienen que utilizar & insead de ?:

window.location.href = "product.aspx?id=prod" + "&" + Date.parse(new Date()); 
+0

+1, estaba a punto de publicarlo yo mismo. Este es el método que uso cada vez que una página debe ser recargada a través de JS. – Duroth

+0

Gracias por la respuesta. Acabo de probar esto y no funcionó. Solo puedo suponer que es porque estoy usando la reescritura de URL para volver a escribir/product_name/to product.aspx? Id = prod. ¿Pero no estoy seguro? –

2

tratar

function page_reload() 
{ 
    window.location = 'http://domain.com/page.php'; 
} 

o

<a href="javascript:history.go(0);">Click here to refresh the page</a> 
8

Si desea actualizar, puede restablecer window.location a window.location.

window.location = window.location 

Asignación window.location llevará a cabo una redirección, y desde window.location devuelve la ubicación actual, la declaración anterior actuará como una redirección.

+1

Lo he intentado pero la página no se recarga en absoluto :) –

+0

Funciona muy bien !!!! – Schotime

+0

@Chris: ¿en qué navegador? –

1

no creo que Firefox es compatible con la recarga, se debe utilizar:

var myUrl = window.location; 
window.location.replace(myUrl) 

He encontrado que esto funciona en IE, Apple Safari y Firefox. NO parece funcionar en Firefox en la Mac.

0

¿Quizás funcionen?:

<meta http-equiv="Cache-control" content="no-cache"> 
<meta http-equiv="Cache-control" content="no-store"> 
+1

oh wow ... ¿el código se elimina en un foro de codificación? ¿Funcionan ?: ## ## asd

0

Usted puede utilizar este código a continuación para su tema

window.location.href = window.location.href + '?refresh'; 

pero hay que usar "pushState" para actualizar la URL, por favor ver esto para más detalles window.history.pushState refreshing the browser

Cuestiones relacionadas