2010-03-25 44 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"); 
} 

工作在IE 8的execCommand( 「另存爲」,NULL, 「FILE.CSV」)未在IE8

但炒鍋不工作在IE 6

是什麼問題?它警告「無法保存」

幫助我!!!先感謝

+0

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

+1

這幾乎可以肯定是一個權限問題。這段代碼來自哪裏?換句話說,具有此代碼的頁面的URL是什麼? – Pointy 2010-03-25 13:34:27

+0

html表格在一個html文件&上面的代碼來自javascript文件在javascript目錄(/js/bug_list.js) – Anbu 2010-03-25 13:39:33

回答

10

的問題似乎是一個古老的錯誤,被固定在Windows XP,但是在我的Windows 7顯然沒有打補丁從http://support.microsoft.com/kb/929863造成的:因爲發生在限制的

這個問題ExecCommand函數。當您運行使用ExecCommand函數以及SaveAs命令的腳本時,腳本只能保存文本文件類型的文件。

果然,將文件擴展名更改爲「.txt」並在IE8中觀看它神奇的工作。

想到的唯一解決方法是讓服務器端語言創建CSV文件並將其作爲下載(使用Content-disposition: attachment標頭)提供。

+0

非常感謝您的回答 – Anbu 2010-03-25 16:54:37

+0

正如你所說,它是工作,當我們將它保存爲「文本」。如果你們發現任何詭計,那麼你可以發佈這個想法,因爲我必須從客戶端完成它!提前謝謝 – Anbu 2010-03-26 04:17:02

+0

http://4umi.com/web/javascript/filewrite.php看看這個鏈接,如果可能的話幫助我 – Anbu 2010-03-26 04:30:06

0

如果你可以做PHP或.NET或Java或東西該處理的服務器端,在設置HTTP頭:

Content-Disposition: attachment; filename=file.csv 

,不幸的是,你不能從JavaScript做。

+0

感謝您的回覆! 但我無法在服務器端做任何事情,所以請在客戶端提供解決方案。 是否有任何特定的原因,它不會在IE8中工作? – Anbu 2010-03-25 14:01:30

+0

嘗試Andy E的建議,將文件擴展名更改爲txt。 – 2010-03-25 14:33:19

3

我知道這是一個很老的線程,但我也遇到了這個問題。 您可以通過將以下值(取決於下載的文件的擴展名)添加到註冊表來修復它。

E.g. .csv文件:

Windows Registry Editor Version 5.00 

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

@MICROSOFT:羞愧對你;問題似乎仍未修補:-)

+0

它就像一個魅力。我有同樣的問題,但在我的情況下,它在某個系統中工作,並沒有在某些系統中工作。 – Ace 2016-08-24 09:33:50