Javascript 更改弹出窗口的内容类型

Javascript 更改弹出窗口的内容类型,javascript,html,content-type,save-as,Javascript,Html,Content Type,Save As,带来了一个新的: 我有一个html页面,当用户按下保存按钮时,我需要它来更改内容类型,以便浏览器提示将文件保存到磁盘 我一直在服务器端这样做,以提供基本上是html表的页面的excel版本 <c:if test="${page.asExcelAction}"> <% response.setContentType("application/vnd.ms-excel"); %> 我现在想做的是做同样的事情,但是在客户端使用Java

带来了一个新的:

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

我一直在服务器端这样做,以提供基本上是html表的页面的excel版本

    <c:if test="${page.asExcelAction}">
    <% 
        response.setContentType("application/vnd.ms-excel");
    %>
我现在想做的是做同样的事情,但是在客户端使用JavaScript,但我无法做到这一点

到目前为止,我得到的是:

<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>

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

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

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

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