2009-09-25 73 views
2

This question帶來了一個新問題:更改彈出窗口的內容類型

我有一個HTML頁面,我需要它來更改內容類型,當用戶按下「保存」按鈕,瀏覽器提示保存到磁盤文件

我已經在服務器端已經這樣做是爲了提供「創先爭優」的網頁版本(這基本上是一個HTML表格)

<c:if test="${page.asExcelAction}"> 
    <% 
     response.setContentType("application/vnd.ms-excel"); 
    %> 

我試圖盡現是做同樣的事情,但在客戶端與javacript,但我無法設法做到這一點所以。

這是我到目前爲止有:

<html> 
    <head> 
     <script> 
      function saveAs(){ 
       var sMarkup = document.getElementById('content').innerHTML; 
       //var oNewDoc = document.open('application/vnd.ms-excel');   
       var oNewDoc = document.open('text/html');   
       oNewDoc.write(sMarkup); 
       oNewDoc.close(); 
      } 
     </script> 
    </head> 
<body> 
<div id='content'> 
    <table> 
     <tr> 
      <td>Stack</td> 
      <td>Overflow</td> 
     </tr> 
    </table> 
</div>  
<input type="button" value="Save as" onClick="saveAs()"/> 
</body> 
</html> 

回答

0

你可以嘗試使用一個隱藏的iframe。當用戶單擊保存時,將iframe src更新到您要存儲/生成excel文件的任何位置。應該彈出一個保存對話框。

0

正如您在發佈的鏈接中所說的,目前支持的唯一MIME類型(至少在IE中)是純文本和HTML。您必須進行服務器端調用才能使用不同的MIME類型。您可能可以使用ActiveX控件,但這不是跨瀏覽器兼容的。