2010-09-05 38 views
15

Tôi cần bắt đầu tải xuống động bằng javascript. Tôi đã thấy cách mọi người làm điều này bằng cách làm một cái gì đó giống nhưBắt đầu tải xuống bằng javascript

window.open("some url", "Download"); 

nhưng tôi cần phải làm điều đó mà không thay đổi url của trang hiện tại (và không sử dụng khung nếu tôi có thể giúp nó, hoặc tạo ra và phá hủy một khung động). Có ai biết cái này làm thế nào không?

+0

window.open không thay đổi url của trang hiện tại. Nó sẽ mở một trang mới (trừ khi trình chặn cửa sổ bật lên dừng nó). – Zafer

+0

Trong chrome nó không có gì, và tôi cần một phương pháp cross-trình duyệt là tốt. – kzip

+0

Oh thực sự tôi đã sai, Chrome thậm chí không cho tôi biết nó đã chặn cửa sổ bật lên. Cảm ơn. – kzip

Trả lời

29

Bạn không cần window.open(). Đó là đồng bằng xấu xí và dễ bị popupblockers (nơi bạn không có quyền kiểm soát trong khách hàng). Chỉ cần window.location là đủ nếu tiêu đề phản hồi của URL tải xuống được yêu cầu chứa Content-Disposition: attachment. Điều này sẽ không thay đổi URL hiện tại trong thanh địa chỉ trình duyệt cũng như trang hiện tại, nhưng chỉ cần mở một hộp thoại Lưu dưới dạng.

Ví dụ:

window.location = 'http://download.winzip.com/winzip145.exe'; 
0

Bạn đang đi đúng hướng, bạn phải buộc trình duyệt yêu cầu "trang" mới, ngay cả khi trang đó là một tệp.

Bạn có thể muốn thử một trong những từ khóa cho tham số thứ hai của window.open() - như _blank - phải có một số cách để có được Chrome để mở URL mới ...

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