2010-03-25 24 views
9
var doc = w.document; 
doc.open('application/CSV','replace'); 
doc.charset = "utf-8"; 
doc.write("all,hello"); 
doc.close(); 

if(doc.execCommand("SaveAs",null,"file.csv")) { 
    window.alert("saved "); 
}else { 
    window.alert("cannot be saved"); 
} 

không làm việc trong IE 8execcommand ("SaveAs", null, "file.csv") không hoạt động trong IE8

nhưng woks trong IE 6

vấn đề là gì? đang cảnh báo "không thể lưu" được

giúp tôi !!! trước nhờ

+0

http://social.msdn.microsoft.com/Forums/en-NZ/iewebdevelopment/thread/1b8bfc9d-0746-4bc4-b7ca-9ebe3132877b – jholster

+1

Điều này gần như chắc chắn là quyền vấn đề. Mã này đến từ đâu? Nói cách khác, URL của trang có mã này trong đó là gì? – Pointy

+0

html bảng là trong một tập tin html & mã trên là đến từ các tập tin javascript đó là trong thư mục javascript (/js/bug_list.js) – Anbu

Trả lời

10

Vấn đề dường như được gây ra bởi một lỗi cũ đã được cố định trong Windows XP nhưng dường như chưa được vá trong Windows của tôi 7. Từ http://support.microsoft.com/kb/929863:

Vấn đề này xảy ra vì của một giới hạn trong ExecCommand chức năng. Khi bạn chạy tập lệnh sử dụng hàm ExecCommand cùng với lệnh SaveAs, tập lệnh chỉ có thể lưu tệp là loại tệp văn bản.

Chắc chắn, thay đổi đuôi tệp thành ".txt" và xem nó hoạt động kỳ diệu trong IE8.

Cách giải quyết duy nhất mà bạn nghĩ đến là có ngôn ngữ phía máy chủ tạo tệp CSV và phân phối nó dưới dạng bản tải xuống (sử dụng tiêu đề Content-disposition: attachment).

+0

rất cảm ơn cho trả lời của bạn – Anbu

+0

Như bạn nói nó làm việc khi chúng tôi lưu nó như là " txt ". nếu các bạn tìm thấy bất kỳ thủ thuật nào thì bạn có thể đăng ý tưởng đó vì tôi phải thực hiện nó từ phía khách hàng !! cảm ơn trước – Anbu

+0

http://4umi.com/web/javascript/filewrite.php xem liên kết này và nếu có thể, hãy giúp tôi – Anbu

0

Nếu bạn có thể làm được điều này bên xử lý máy chủ với PHP hoặc .NET hoặc Java hoặc một cái gì đó, trong các tiêu đề http thiết lập:

Content-Disposition: attachment; filename=file.csv 

nào, không may bạn không thể làm từ JavaScript.

+0

cảm ơn bạn đã trả lời kịp thời !! nhưng tôi không thể làm bất cứ điều gì trong serverside vì vậy xin vui lòng cho một giải pháp ở phía khách hàng. Có lý do cụ thể nào khiến nó không hoạt động trong IE8 không? – Anbu

+0

Hãy thử đề xuất của Andy E, thay đổi phần mở rộng tệp thành txt. –

3

Tôi biết đây là một chủ đề rất cũ, nhưng tôi cũng phải đối mặt với vấn đề này. Bạn có thể sửa lỗi bằng cách thêm giá trị sau (tùy thuộc vào phần mở rộng của tập tin được tải xuống) vào sổ đăng ký của bạn.

Ví dụ: đối với tệp .csv:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\.csv] 
"PerceivedType"="document" 

@MICROSOFT: Xấu hổ với bạn; vấn đề dường như vẫn chưa được vá :-)

+0

Nó hoạt động như một sự quyến rũ.Tôi đã có cùng một vấn đề nhưng trong trường hợp của tôi nó đã được làm việc trong một số hệ thống và đã không được làm việc trong một số hệ thống. – Ace

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