javascript - 更改弹出窗口的内容类型

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

最佳答案

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

关于javascript - 更改弹出窗口的内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1479449/

相关文章:

IIS 6 - 经典 ASP - 将 *.asp 响应头的内容类型设置为 "text/html;charset=UTF-8"

javascript - Google Maps GDirections - map 上两点之间的路线指示

javascript - 如何在新点 Highcharts 中添加动态 xaxis 类别标签名称

javascript - 为什么我的服务器没有收到任何内容?

javascript - 从正文中包含图像的 HTML 页面发送邮件

javascript - 背景重叠问题

java - Spring MVC,将@ExceptionHandler 迁移到 HandlerExceptionResolver 以获得 RESTful 服务

javascript - 卡住标题不允许点击 knockout

javascript - AngularJS - ng-click 和 ng-show

javascript - 如何将图像居中并调整大小为屏幕的 100% 宽度,但前提是 <1024 像素