2012-04-03 22 views
6

Tôi có một "Tải tập tin" href định nghĩa trong file javascript của tôi là:dữ liệu URI cho tệp CSV trong firefox không đặt .csv mở rộng

$("#downloadTag").html("<a href=data:text/csv;charset=utf-8," + encodeURIComponent(data) + ">Download</a>"); 

Trong chrome nó hoạt động như mong đợi tức là khi tôi bấm vào tải về này liên kết nó cung cấp cho tên tập tin là "download.csv". Tuy nhiên, trong firefox, nó đặt một số tên vô nghĩa như "puzdb.part".

Ai đó có thể vui lòng cho tôi biết tôi đang làm gì sai?

Cảm ơn

Edit: Dưới đây là bản demo jsfiddle: http://jsfiddle.net/kLJz9/

Chỉnh sửa # 2: tôi nhận thấy rằng trên cửa sổ nó không đưa .csv mở rộng cho chrome cũng và hành vi cho firefox vẫn là giống nhau (ví dụ: phần mở rộng .part)

Trả lời

3

Đối với Chrome, bạn có thể chỉ định tên tệp/tiện ích mở rộng bằng cách thêm thuộc tính tải xuống vào thẻ neo của mình.

<a href="URI" download="MyFile.csv">Download</a> 

Thuộc tính này chỉ hoạt động trong chrome v 14+ và không có trình duyệt nào khác.

Tôi cũng đang tìm giải pháp cho vấn đề này, nhưng tôi hy vọng điều này sẽ hữu ích.

CHỈNH SỬA:

thuộc tính tải xuống sẽ khắc phục sự cố bạn đang gặp phải trên máy tính windows và chrome.

+0

Cảm ơn câu trả lời Brad. URI dữ liệu hoạt động tốt nhưng tôi muốn nó được hỗ trợ bởi tất cả các trình duyệt. :-(Nó thậm chí hoạt động hoàn hảo trên Mac, nó chỉ là cửa sổ nó không đồng ý với.Xin vui lòng cho tôi biết nếu bạn tìm thấy giải pháp này.Thanks – test123

+0

Có một lỗi trên Firefox cho điều này: https: // bugzilla. mozilla.org/show_bug.cgi?id=622400 (Tôi vẫn đang gặp trên Mac OS X 10.6.8 và Firefox 18.0.2). – Piran