如何开始在Internet Explorer中自动下载文件?

时间:2020-03-06 14:57:58  来源:igfitidea点击:

如何在Internet Explorer中初始化文件的自动下载?

例如,在下载页面中,我希望显示下载链接,并显示一条消息:"如果下载不会自动开始……等"。页面加载后不久应开始下载。

在Firefox中,这很容易,我们只需要在标头中包含一个meta标签,即<meta http-equiv =" Refresh" content =" n; url">,其中n是秒数,而url`是下载网址。这在Internet Explorer中不起作用。如何在Internet Explorer浏览器中实现此目的?

解决方案

我最近通过在页面上放置以下脚本解决了该问题。

setTimeout(function () { window.location = 'my download url'; }, 5000)

我同意元刷新会更好,但是如果它不起作用,我们会怎么做...

SourceForge使用一个<iframe>元素和一个指向要下载的文件的src =""属性。

<iframe width="1" height="1" frameborder="0" src="[File location]"></iframe>

(副作用:没有重定向,没有JavaScript,原始URL保持不变。)

确保提供没有无缓存头的文件!如果用户尝试"打开"下载而不先保存,则IE会出现问题。

我讨厌网站使下载变得如此繁琐,并使用骇客代替了良好的旧链接。

简繁版:

<a href="file.zip">Start automatic download!</a>

有用!在每个浏览器中!

如果要下载通常以内联方式显示的文件(例如图像),则HTML5具有" download"属性,该属性会强制下载文件。它还允许我们覆盖文件名(尽管有更好的方法):

<a href="report-generator.php" download="result.xls">Download</a>

带有"谢谢"页面的版本:

如果要在下载后显示"感谢",请使用:

<a href="file.zip" 
   onclick="if (event.button==0) 
     setTimeout(function(){document.body.innerHTML='thanks!'},500)">
 Start automatic download!
</a>

setTimeout中的功能可能更高级,例如通过AJAX下载整页(但不要离开页面?请勿触摸" window.location"或者激活其他链接)。

关键是要下载的链接是真实的,可以被下载加速器复制,拖动,拦截,得到:visited的颜色,如果在浏览器重新启动后页面保持打开状态,则不会重新下载,等等。

这就是我用于ImageOptim的方式

这似乎适用于所有浏览器。

<script type="text/javascript">
    window.onload = function(){
     document.location = 'somefile.zip';
    }
    </script>