2011-10-14 4 views
8

Tôi muốn cho phép người dùng tải xuống trực tiếp tệp bằng một lần nhấp. Tuy nhiên, có một vấn đề khi nói đến các loại meme đã biết như html, audio, video, v.v. Lý tưởng nhất, tôi muốn kích hoạt lời nhắc tải xuống cho các tệp âm thanh/video. Cuối cùng, tôi cũng muốn làm điều đó cho các tài liệu html. Ý tưởng chính là giúp người dùng dễ dàng tải xuống tệp mà không yêu cầu họ điều hướng vào menu ngữ cảnh.Có thể bắt đầu lời nhắc tải xuống trong trình duyệt cho các loại mime được công nhận chỉ sử dụng JavaScript (phương pháp tiếp cận phía máy khách) không?

Tôi nghĩ ví dụ như những người không thực sự thoải mái với máy tính và các chức năng chính của anh ấy. Những người này chắc chắn sẽ thích một cách tốt hơn so với "tiết kiệm như".

Lý do tại sao tôi đang tìm giải pháp JavaScript là cách tiếp cận PHP chỉ hoạt động nếu bạn đang ở trong ngữ cảnh trang web. Bất cứ khi nào bạn ở trong một ngữ cảnh tập lệnh hoặc đoạn mã được chèn (ví dụ: phát triển plugin cho Firefox, Chrome hoặc Safari), bạn có thể muốn tránh yêu cầu phản hồi phía máy chủ.

Tôi đã cố gắng đạt được điều này với window.open()document.execCommand("saveAs",.... Nó hoạt động, mặc dù nó là glitchy và thất bại cho các tập tin lớn.

Sau đó, tôi đã thử Downloadify không hoạt động trong mọi tình huống.

Có javascript thuần túy, không có cách ajax để kích hoạt lời nhắc tải xuống để người dùng có thể tải xuống trực tiếp tệp bằng cách sử dụng nhấp chuột trái đơn giản không?

Mọi trợ giúp đều được đánh giá cao.

Trả lời

18

Có thuộc tính download mới trong HTML5 mà bạn có thể kết hợp với. Nó chỉ ra cho trình duyệt rằng tài nguyên sẽ được tải xuống thay vì được điều hướng đến. Ngay bây giờ, nó chỉ hoạt động trong Chrome, nhưng nó là một phần của thông số HTML và hy vọng sẽ sớm được trình duyệt khác chấp nhận.

Demo: http://html5-demos.appspot.com/static/a.download.html Thông tin thêm: http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-download

+0

@ebidel Trình duyệt cũ không hỗ trợ HTML5. Ví dụ, IE 8 là widley được sử dụng và không hỗ trợ HTML5. Bất kỳ cách giải quyết nào? – Oliver

+0

Điều gì về việc xử lý các lỗi http như 404? –

+1

Firefox 44.0.2 cũng không chấp nhận. –

0

Bạn có thể sử dụng <a href="example" download>. Đây là HTML5 và nó hoạt động với Chrome, Firefox và Edge (nhưng không phải với Internet Explorer, thậm chí không có phiên bản hiện đại).

0

Nếu ai đó đạt câu hỏi này bây giờ là giải pháp tốt nhất là

<a href="example" download target="_blank"> 

Nếu trình duyệt hỗ trợ thuộc tính HTML5 tải về sẽ bắt đầu tải về các tập tin, nếu không (trong trường hợp của Internet Explorer và các trình duyệt cũ) liên kết sẽ mở một cửa sổ tab khác có tệp để tải xuống.