更改弹出窗口的内容类型

时间:2009-09-25 20:32:12

标签: javascript html content-type save-as

This question带来了一个新的:

我有一个html页面,当用户按下“保存”按钮以便浏览器提示将文件保存到磁盘时我需要它来更改内容类型

我一直在服务器端这样做,提供页面的“excel”版本(基本上是一个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>

2 个答案:

答案 0 :(得分:0)

您可以尝试使用隐藏的iframe。当用户单击“保存”时,将iframe src更新到存储/生成excel文件的任何位置。应弹出保存对话框。

答案 1 :(得分:0)

正如您发布的链接所述,目前唯一支持的mime类型(至少在IE中)是纯文本和HTML。您必须进行服务器端调用才能使用不同的mime类型。您可能可以使用ActiveX控件,但这不是跨浏览器兼容的。

相关问题