Tôi đang tìm thêm một số suy nghĩ về cách tốt nhất để bắt đầu tải xuống tệp từ Javascript.Bắt đầu tải xuống tệp hoạt động tốt, ngay cả trong IE?
Best way to initiate a download? có rất nhiều ý tưởng tốt có thể được tóm tắt:
- Đặt src trên một iframe
- Sử dụng window.location.replace()
- Sử dụng một trang với một tiêu đề meta refresh
- Sử dụng một window.open()
- Hãy để máy chủ tập tin trực tiếp đầu ra, thiết lập Content-type và Content-Disposition
Tất cả các cách tiếp cận này đều hoạt động tốt cho các trình duyệt mà tôi đã thử nghiệm, ngoại trừ IE8. Với IE8, tôi gặp phải một loạt sự cố:
- Khung nội tuyến không hoạt động do cookie do môi trường tôi đang sử dụng. Tôi nghĩ rằng tôi cần phải kích hoạt tiêu đề P3P để giải quyết vấn đề này, nhưng môi trường không cho phép tôi đặt tiêu đề, vì vậy P3P nằm ngoài số
- Window.location.replace() hoạt động ngoại trừ trong IE8, thanh địa chỉ của cửa sổ thay đổi thành URL thành tệp và cửa sổ bên dưới trống sau khi tệp được tải xuống được mở
- Phương pháp làm mới meta cũng hoạt động, nhưng thanh địa chỉ sẽ thay đổi thành URL của tệp và cửa sổ bên dưới là trống sau khi tải xuống tệp
- Tôi đang cố gắng hết sức để tránh window.open() đến né tránh bất kỳ khối bật lên nào ker vấn đề
- Các môi trường máy chủ Tôi đang ở sẽ không cho phép bạn xuất ra các file chính nó, như bạn có thể làm trong tiếng nói, đối tượng Response ASP.NET của
Tôi thậm chí còn không thử các phương pháp với IE6 hoặc IE7, vì vậy có thể có những bất ngờ khác ở đó. Vì vậy, có ai có bất kỳ đề xuất nào khác để bắt đầu tải xuống trong IE không, nơi (1) không có cửa sổ bật lên và (2) tệp có thể được lưu hoặc mở và (3) không để trống cửa sổ trống, (3)) chỉ sử dụng Javascript, HTML và URL vào một tệp?
Denver Mike
Bạn có thể xây dựng trên môi trường máy chủ không? –
Hi Joel, Điều này đang được xây dựng để chạy trên các máy chủ Salesforce.com - họ có ngôn ngữ lập trình riêng của họ được gọi là Apex. –