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>
答案 0 :(得分:0)
您可以尝试使用隐藏的iframe。当用户单击“保存”时,将iframe src更新到存储/生成excel文件的任何位置。应弹出保存对话框。
答案 1 :(得分:0)
正如您发布的链接所述,目前唯一支持的mime类型(至少在IE中)是纯文本和HTML。您必须进行服务器端调用才能使用不同的mime类型。您可能可以使用ActiveX控件,但这不是跨浏览器兼容的。