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

Javascript下载按钮的最佳实践实现是什么?,javascript,html,iframe,internet-explorer-7,Javascript,Html,Iframe,Internet Explorer 7,我的服务器有一个html接口。界面上有一个按钮。当用户单击按钮时,他们下载位于服务器上的文件 在用户按下按钮后,我当前的实现会在html文档中附加一个iframe。iframe的url参数设置为服务器上文件的uri,显示参数为“none”。它被附加到文档的正文中 我的问题是,实现这种结果的最佳实践是什么?i、 e.按钮处理程序应该如何管理下载?为什么不执行以下操作: window.location.href= 这应该适用于任何浏览器,甚至不应该让用户离开您的网页(从浏览器中显示的内容的角度来看)

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

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


我的问题是,实现这种结果的最佳实践是什么?i、 e.按钮处理程序应该如何管理下载?

为什么不执行以下操作:

window.location.href=


这应该适用于任何浏览器,甚至不应该让用户离开您的网页(从浏览器中显示的内容的角度来看),除非您的可下载内容使用mime类型,浏览器将尝试呈现自己(例如,
image/png

为什么不做一些类似的事情:

window.location.href=

这应该适用于任何浏览器,甚至不应该让用户离开您的网页(从浏览器中显示的内容的角度来看),除非您的可下载内容使用mime类型,浏览器将尝试呈现自己(例如,
image/png

我想说的是,最佳实践是使用带有按钮的表单。例如:

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

如果您确实需要将其定位于IFRAME(正如aroth所解释的,这似乎是不必要的,并且您可以始终为已识别的类型设置内容处置响应标题),您可以将
target=“myIFrame”
放在表单标记中(myIFrame是隐藏IFRAME的名称)

事实上,是确保文件下载而不是打开的最佳实践

我想说的是,最佳实践是使用带有按钮的表单。例如:

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

如果您确实需要将其定位于IFRAME(正如aroth所解释的,这似乎是不必要的,并且您可以始终为已识别的类型设置内容处置响应标题),您可以将
target=“myIFrame”
放在表单标记中(myIFrame是隐藏IFRAME的名称)


事实上,是确保文件下载而不是打开的最佳实践

我认为iframe不太可能与问题有关。除了你的字符编码问题,我看不出你做的有什么错。你说的“安全”到底是什么意思?问题更多的是关于实现这种下载按钮的最佳实践,而不是我遇到的问题。我已经编辑了这个问题,为什么要用这种复杂的方式?您可以使用一些PHP来实现这一点,并设置标题以强制浏览器下载该文件。我认为iframe不太可能与该问题有关。除了你的字符编码问题,我看不出你做的有什么错。你说的“安全”到底是什么意思?问题更多的是关于实现这种下载按钮的最佳实践,而不是我遇到的问题。我已经编辑了这个问题,为什么要用这种复杂的方式?你可以用一些PHP和设置标题来强制浏览器下载文件。在Chrome Html 5视频中,我用这种方法遇到了网络错误,有没有关于如何解决这个问题的想法?在Chrome Html 5视频中,我用这种方法遇到了网络错误,有没有关于如何解决这个问题的想法?