其中n是秒数,url是下载URL。这在Internet Explorer中不起作用。如何在Internet Explorer浏览器中使用此功能?" />

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

javascript html internet-explorer meta-tags

256767 观看

17回复

42631 作者的声誉

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

例如,在下载页面中,我想要显示下载链接并显示一条消息:“如果下载没有自动启动......等等”。下载应该在页面加载后不久开始。

在Firefox中这很容易,你只需要在标题中包含一个元标记,<meta http-equiv="Refresh" content="n;url">其中n是秒数,url是下载URL。这在Internet Explorer中不起作用。如何在Internet Explorer浏览器中使用此功能?

作者: Pop Catalin 的来源 发布者: 2008 年 10 月 1 日

回应 (17)


20

2144 作者的声誉

我最近通过在页面上放置以下脚本来解决它。

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

我同意元刷新会更好但如果它不起作用你会做什么...

作者: ullmark 发布者: 01.10.2008 08:29

100

32763 作者的声誉

决定

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

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

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

作者: devio 发布者: 01.10.2008 08:34

2

48781 作者的声誉

确保在没有 no-cache标头的情况下提供文件!IE有问题,如果用户试图“打开”下载而不先保存。

作者: scunliffe 发布者: 03.10.2008 06:11

48

76949 作者的声誉

讨厌网站如此复杂下载并使用黑客而不是旧的链接

死简单版:

<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的东西

作者: Kornel 发布者: 18.11.2008 11:16

1

15766 作者的声誉

这对我来说似乎适用于所有浏览器。

 <script type="text/javascript">
    window.onload = function(){
     document.location = 'somefile.zip';
    }
    </script>
作者: Dan 发布者: 02.07.2010 11:30

7

79 作者的声誉

一小段jQuery为我解决了这个问题。

$(function() {
   $(window).bind('load', function() {
      $("div.downloadProject").delay(1500).append('<iframe width="0" height="0" frameborder="0" src="[YOUR FILE SRC]"></iframe>'); 
   });
});

在我的HTML中,我只是

<div class="downloadProject"></div>

所有这一切都是等待一秒半,然后使用iframe附加div,指向您要下载的文件。当iframe更新到页面上时,浏览器会下载该文件。就那么简单。:d

作者: CameronK 发布者: 25.06.2011 04:59

1

11 作者的声誉

我认为这对你有用。但是,如果他们在几秒钟内获得了一些东西而不花费更多时间,那么他们也将再次访问您的网站。 <a href="file.zip" onclick="if (event.button==0) setTimeout(function(){document.body.innerHTML='thanks!'},500)"> Start automatic download! </a>

作者: raheel 发布者: 07.01.2012 08:01

21

39510 作者的声誉

我遇到了类似的问题,上述解决方案都没有对我有用。这是我的尝试(需要jquery):

$(function() {
  $('a[data-auto-download]').each(function(){
    var $this = $(this);
    setTimeout(function() {
      window.location = $this.attr('href');
    }, 2000);
  });
});

用法:只需添加一个名为data-auto-download链接的属性,指向有问题的下载:

<p>The download should start shortly. If it doesn't, click
<a data-auto-download href="/your/file/url">here</a>.</p>

它应该适用于所有情况。

作者: kikito 发布者: 07.03.2012 05:45

3

136 作者的声誉

我检查并发现,通过将onclick事件写入Anchor标签或输入按钮,它将在按钮点击上工作

onclick='javascript:setTimeout(window.location=[File location], 1000);'
作者: Vandana 发布者: 16.06.2012 05:44

5

332 作者的声誉

我用这个,似乎工作,只是简单的JS,没有框架:

Your file should start downloading in a few seconds. 
If downloading doesn't start automatically
<a id="downloadLink" href="[link to your file]">click here to get your file</a>.

<script> 
    var downloadTimeout = setTimeout(function () {
        window.location = document.getElementById('downloadLink').href;
    }, 2000);
</script>

注意:这将在页面加载时启动超时。

作者: Tyler 发布者: 04.10.2012 12:50

5

2545 作者的声誉

这是我在一些网站上使用的(需要jQuery):

$(document).ready(function() {
    var downloadUrl = "your_file_url";
    setTimeout("window.location.assign('" + downloadUrl + "');", 1000);
});

1秒后自动下载文件。

作者: Rabi 发布者: 28.01.2013 03:40

1

4784 作者的声誉

对于那些试图使用动态链接触发下载的人来说,让它在浏览器中保持一致是很棘手的。

我在IE10 +下载PDF并使用@dandavis' download功能(https://github.com/rndme/download)时遇到了麻烦。

IE10 +需要msSaveBlob

作者: Nelu 发布者: 07.07.2015 09:04

2

66 作者的声誉

回到根,我用这个:

<meta http-equiv="refresh" content="0; url=YOURFILEURL"/>

也许不符合WC3,但在所有浏览器上都很完美,没有HTML5 / JQUERY / Javascript。

问候汤姆:)

作者: Tom 发布者: 14.01.2016 02:42

5

773 作者的声誉

适用于Chrome,Firefox和IE8及以上版本:

var link = document.createElement('a');
document.body.appendChild(link);
link.href = url;
link.click();
作者: EL missaoui habib 发布者: 28.04.2016 01:48

1

339 作者的声誉

我希望这适用于所有浏览器。您还可以设置自动下载时间。

<html>
<head>
<title>Start Auto Download file</title>
<script src="http://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
$(function() {
$('a[data-auto-download]').each(function(){
var $this = $(this);
setTimeout(function() {
window.location = $this.attr('href');
}, 2000);
});
});
</script>
</head>
<body>
<div class="wrapper">
<p>The download should start shortly. If it doesn't, click
<a data-auto-download href="auto-download.zip">here</a>.</p>
</div>
</body>
</html>

在这里演示

作者: M. Lak 发布者: 01.08.2017 06:43

0

152 作者的声誉

不错的jquery解决方案:

jQuery('a.auto-start').get(0).click();

您甚至可以在<a>标签内设置不同的文件名进行下载:

Your download should start shortly. If not - you can use
<a href="/attachments-31-3d4c8970.zip" download="attachments-31.zip" class="download auto-start">direct link</a>.
作者: Somerussian 发布者: 19.02.2019 06:11

0

31 作者的声誉

多一个 :

var a = document.createElement('a');
a.setAttribute('href', dataUri);
a.setAttribute('download', filename);

var aj = $(a);
aj.appendTo('body');
aj[0].click();
aj.remove();
作者: ZettaCircl 发布者: 15.04.2019 09:18
32x32