Javascript下载按钮的最佳实践实现是什么?

时间:2011-06-28 12:27:59

标签: javascript html iframe internet-explorer-7

我的服务器有一个html界面。在界面上是一个按钮。当用户单击该按钮时,他们会下载位于服务器上的文件。

我的当前实现在用户按下按钮后将iframe附加到html文档。 iframe的url参数设置为服务器上文件的uri,显示参数为“none”。它附在文件正文上。

我的问题是,实现这样的结果的最佳做法是什么?即按钮处理程序应如何管理下载?

2 个答案:

答案 0 :(得分:3)

为什么不做以下事情:

window.location.href = <download URL>;

这应该可以在任何浏览器中使用,它甚至不应该让用户离开你的网页(从浏览器中显示的内容的角度来看),除非你的可下载内容是以mime类型提供的,浏览器会尝试渲染自己(例如image/png)。

答案 1 :(得分:2)

我会说最佳实践是使用带有按钮的表单。 E.g:

<form method="get" action="/file-to-download.zip">
  <div>
    <input type="submit" value="Download" />
  </div>
</form>

如果确实需要将其定位到IFRAME(这似乎没有必要,并且您可以随时为已识别的类型设置Content-Disposition响应标头),您可以将{{ 1}}在您的表单标记中(myIFrame是您隐藏的IFRAME的名称)。

事实上,Content-Disposition response header最佳实践,用于确保下载而不是打开文件。