JavaScript:如何“缓存”要下载的文件,然后根据请求触发下载?

时间:2011-08-31 23:16:34

标签: javascript html download

我有一个网络应用程序,允许用户“生成”他们可以下载的HTML电子邮件。当用户单击“预览”按钮时,表单将提交到一个新窗口,该窗口实际上会生成html。

<form action="/preview" method="post" target="previewWindow" onsubmit="window.open('', 'previewWindow', 'width=660,height=800,status=yes,resizable=yes,scrollbars=yes')">
    <!-- form elements go here -->
</form>

然后我在页面上显示HTML,以便在实际下载文件之前“预览”html。

<!-- this is the html used in the popup window -->
<html>
<head>
    <title>Email Preview</title>
</head>
<body>
    <div id="header">
        <a href="#">Download</a>
    </div>
    <div id="emailHtml">
        <?php echo $this->emailHtml; // the HTML that I will want to download soon ?>
    </div>
</body>
</html>

我的脚本已经完成了生成HTML的工作,因为我已经在页面上显示了它。有没有办法从这个HTML生成HTML文件并“缓存”它,以便当用户点击下载链接时,它只是触发浏览器将此内容作为文件下载而无需再次重新生成html?我不想在服务器上保存任何文件。

1 个答案:

答案 0 :(得分:0)

基于Mikko Ohtamaa上面的评论,似乎没有办法用JavaScript实现这一点。我决定将文件保存到临时目录作为解决方法。我仍然有兴趣听听是否有办法在不将文件保存到服务器的情况下执行此类操作。