How to start automatic download of a file in Internet Explorer?
如何在Internet Explorer中初始化文件的自动下载?
例如,在下载页面中,我想要显示下载链接并显示一条消息:"如果下载没有自动启动......等等"。 下载应该在页面加载后不久开始。
在Firefox中这很简单,您只需要在标题中包含元标记
SourceForge使用
1 | <iframe width="1" height="1" frameborder="0" src="[File location]"></iframe> |
(副作用:没有重定向,没有JavaScript,原始URL保持不变。)
我讨厌网站如此复杂下载并使用黑客而不是旧的链接。
死简单版:
1 | Start automatic download! |
有用!在每个浏览器!
如果要下载通常以内联方式显示的文件(例如图像),则HTML5具有强制下载文件的
1 | Download |
带有"谢谢"页面的版本:
如果您想在下载后显示"谢谢",请使用:
1 2 3 4 | <a href="file.zip" onclick="if (event.button==0) setTimeout(function(){document.body.innerHTML='thanks!'},500)"> Start automatic download! |
该
重点是下载链接是真实的,可以被下载加速器复制,拖动,拦截,获取
这就是我用于ImageOptim的东西
我最近通过在页面上放置以下脚本来解决它。
1 | setTimeout(function () { window.location = 'my download url'; }, 5000) |
我同意元刷新会更好但如果它不起作用你会做什么...
我遇到了类似的问题,上述解决方案都没有对我有用。这是我的尝试(需要jquery):
1 2 3 4 5 6 7 8 | $(function() { $('a[data-auto-download]').each(function(){ var $this = $(this); setTimeout(function() { window.location = $this.attr('href'); }, 2000); }); }); |
用法:只需将名为
1 2 3 4 | <p> The download should start shortly. If it doesn't, click here. </p> |
它应该适用于所有情况。
一小段jQuery为我解决了这个问题。
1 2 3 4 5 | $(function() { $(window).bind('load', function() { $("div.downloadProject").delay(1500).append('<iframe width="0" height="0" frameborder="0" src="[YOUR FILE SRC]"></iframe>'); }); }); |
在我的HTML中,我只是
1 |
所有这一切都是等待一秒半,然后使用iframe附加div,指向您要下载的文件。当iframe更新到页面上时,浏览器会下载该文件。就那么简单。 :d
适用于Chrome,Firefox和IE8及以上版本:
1 2 3 4 | var link = document.createElement('a'); document.body.appendChild(link); link.href = url; link.click(); |
我用这个,似乎工作,只是简单的JS,没有框架:
1 2 3 4 5 6 7 8 | Your file should start downloading in a few seconds. If downloading doesn't start automatically click here to get your file. var downloadTimeout = setTimeout(function () { window.location = document.getElementById('downloadLink').href; }, 2000); |
注意:这将在页面加载时启动超时。
这是我在一些网站上使用的(需要jQuery):
1 2 3 4 | $(document).ready(function() { var downloadUrl ="your_file_url"; setTimeout("window.location.assign('" + downloadUrl +"');", 1000); }); |
1秒后自动下载文件。
多一个 :
1 2 3 4 5 6 7 8 | var a = document.createElement('a'); a.setAttribute('href', dataUri); a.setAttribute('download', filename); var aj = $(a); aj.appendTo('body'); aj[0].click(); aj.remove(); |
我检查并发现,通过将onclick事件写入Anchor标签或输入按钮,它将在按钮点击上工作
1 | onclick='javascript:setTimeout(window.location=[File location], 1000);' |
回到根,我用这个:
1 | <meta http-equiv="refresh" content="0; url=YOURFILEURL"/> |
也许不符合WC3,但在所有浏览器上都很完美,没有HTML5 / JQUERY / Javascript。
问候汤姆:)
确保在没有no-cache标头的情况下提供文件! IE有问题,如果用户试图"打开"下载而不先保存。
对于那些试图使用动态链接触发下载的人来说,让它在浏览器中保持一致是很棘手的。
我在IE10 +下载PDF并使用@dandavis'
IE10 +需要
我认为这对你有用。但是,如果他们在几秒钟内得到一些东西而不花费更多时间,他们也将再次访问您的网站,访问者很容易。
<5233>
这对我来说似乎适用于所有浏览器。
1 2 3 4 | <script type="text/javascript"> window.onload = function(){ document.location = 'somefile.zip'; } |
我希望这适用于所有浏览器。您还可以设置自动下载时间。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <html> <head> Start Auto Download file <script src="http://code.jquery.com/jquery-3.2.1.min.js"> $(function() { $('a[data-auto-download]').each(function(){ var $this = $(this); setTimeout(function() { window.location = $this.attr('href'); }, 2000); }); }); </head> <body> <p> The download should start shortly. If it doesn't, click here. </p> </body> </html> |
在这里演示
不错的jquery解决方案:
1 | jQuery('a.auto-start').get(0).click(); |
您甚至可以在
1 2 | Your download should start shortly. If not - you can use direct link. |