Javascript 更改弹出窗口的内容类型
带来了一个新的: 我有一个html页面,当用户按下保存按钮时,我需要它来更改内容类型,以便浏览器提示将文件保存到磁盘 我一直在服务器端这样做,以提供基本上是html表的页面的excel版本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
<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控件,但它不兼容跨浏览器