2009-10-08 29 views
8

Tôi có một yêu cầu đơn giản để làm mới một trang sử dụng mã Javascript dưới đây:Buộc phải refresh lại trang sử dụng Javascript trong Firefox

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

này hoạt động tốt trong IE nhưng Firefox chỉ nhận được phiên bản cache và nhu cầu người sử dụng nhấn F5 để tải phiên bản mới nhất của trang.

Tôi đã thêm thẻ meta:

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

Nhưng điều này không giúp đỡ.

Bất kỳ ý tưởng nào ???

Trả lời

11

bạn có thể gọi cùng một trang nhưng để cho nó trông giống như nó là một khác trang bằng cách thay đổi chuỗi truy vấn:

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

này làm việc cho tất cả các trình duyệt. Bạn có thể cải thiện nó bằng cách trích xuất trang hiện tại trong số location.href.

Edit:

Nếu bạn đã có một hiện chuỗi truy vấn bạn đã sử dụng & INSEAD của ?:

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

+1, tôi sắp sửa đăng bài này. Đây là phương pháp tôi sử dụng mọi lúc một trang cần được tải lại thông qua JS. – Duroth

+0

Cảm ơn bạn đã phản hồi. Chỉ cần thử điều này và nó đã không hoạt động. Tôi chỉ có thể giả định đó là bởi vì tôi đang sử dụng URL viết lại để viết lại/product_name/để product.aspx? Id = prod. Nhưng không chắc chắn? –

2

thử

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

hoặc

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

Nếu bạn muốn làm mới, bạn có thể đặt lại window.location thành window.location.

window.location = window.location 

Gán window.location sẽ thực hiện một chuyển hướng, và kể từ window.location trả về vị trí hiện tại, tuyên bố trên sẽ hoạt động như một chuyển hướng.

+1

Tôi đã thử điều này nhưng trang không tải lại tất cả :) –

+0

Hoạt động tuyệt vời !!!! – Schotime

+0

@Chris: trên trình duyệt nào? –

1

Tôi không nghĩ rằng Firefox hỗ trợ tải lại, bạn nên sử dụng:

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

tôi thấy rằng điều này làm việc trong IE, Apple Safari và Firefox. Nó dường như không hoạt động trong Firefox trên máy Mac.

0

có thể những thứ này sẽ hoạt động?:

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

oh wow ... mã bị xóa trong một diễn đàn mã hóa? có thể những điều này sẽ hoạt động ?: ## ## asd

0

Bạn có thể sử dụng mã này dưới đây để biết vấn đề của bạn

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

Nhưng bạn cần phải sử dụng "pushState" để cập nhật địa chỉ, vui lòng xem này để biết thêm chi tiết window.history.pushState refreshing the browser

Các vấn đề liên quan