1
需要圍繞在Javascript應用程序中處理簡單文件下載(.ics)的選項提供建議。在簡單的客戶端應用程序中處理文件
假設s.icsMsg是一個好格式的文本/日曆字符串,下面的工作在Chrome:
var downloadLink = document.createElement("a");
downloadLink.href = 'data:text/calendar;charset=utf-8,' + s.icsMsg;
downloadLink.download = "Calendar.ics";
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
文件下載,正確命名並打開到郵件客戶端。在IE 9+中,我得到一個數據區大小錯誤。
在IE中,純粹在客戶端上有沒有辦法實現這一點?我知道我可以通過在http頭中設置內容處理來實現,但由於該文件是在客戶端生成的,因此需要兩個額外的躍點才能將其推出,保存起來,然後使用正確的標頭將其發回(如果那甚至會起作用)。
任何建議將是偉大的...
想一想,但你有沒有想過打開一個iframe的數據發佈到它的iframe頁面基本上只是把數據發佈到它的內容處置標題? –
沒想到這是可能的?我以爲服務器上設置了標題,因爲我都是客戶端,所以沒有發生。雖然,我不知道是否可以在同一頁面上做ajax文章,在帖子中設置標題並在其中添加魔法...另一種方法是在App Harbor或類似軟件上託管的簡單服務,然後在Google雲端硬盤中創建該文件,並返回我然後.click()的網址。也許。或者IE可能會有一個可怕的倒退。 – Nathan
標頭設置在服務器端。但在我考慮的情況下是將數據「POST」到服務器。因此,服務器將有權訪問客戶端生成的數據(在php的'$ _POST'字段中),然後可以將這些數據放入標題中 –